Corso PHP/ Lezione 5: Dichiarazione di funzioni

In questa lezione impareremo come costruire le nostre funzioni PHP ed introdurremo le nozioni di variabili locali e globali


La dichiarazione di proprie funzioni consente al programmatore di estendere
il linguaggio utilizzato. Una funzione può essere interpretata in due modi:
come funzione in senso "matematico" o come un meccanismo per
aggiungere nuovi comandi al linguaggio.

Tramite una funzione, infatti, è possibile raggruppare assieme un blocco di
istruzioni PHP che potranno essere richiamate ed eseguite come un tutt’uno.
Inoltre una funzione può essere utilizzata in "senso matematico" come
relazione tra un input (i parametri passati) ed un output (il risultato della
funzione).

Se queste considerazioni possono sembrare troppo teoriche, almeno per i
neofiti, possiamo senz’altro proporne altre di impatto ben più concreto. In
primo luogo, l’uso di funzioni è il primo passo verso una maggiore
riutilizzabilità del codice: ogni programmatore può costruire, e magari
condividere, una propria libreria di funzioni da riutilizzare al bisogno, senza
dover ogni volta "reinventare la ruota".

Inoltre, è evidente che se in uno script PHP devo ripetere più volte una
stessa sequenza di istruzioni è assai più conveniente racchiuderle in una
funzione (ed invocare quella) piuttosto che copiare l’intera sequenza in tutti i
punti in cui serve. Vediamo, allora, come si dichiara una funzione in PHP.

La dichiarazione di una funzione avviene tramite la parola chiave function ;
la sintassi generale è la seguente:

function <nome-funzione> (
<argomenti> ) {

<corpo-della-funzione>

}

dove <nome-funzione> dev’essere sostituito dal nome da assegnare
alla funzione che si va a dichiarare; <argomenti> è un elenco,
eventualmente vuoto, di argomenti (o parametri) da fornire alla funzione; <corpo-della-funzione>
è un blocco di istruzioni PHP che implementano la funzione stessa. Vediamo, a
titolo di esempio, la dichiarazione di una funzione che somma due numeri.

// Una semplice funzione

// Dichiarazione

function somma($a, $b) {

return $a + $b;

}

Per utilizzare la funzione appena dichiarata è sufficiente invocarla usando
il nome ad essa attribuito e fornendo gli argomenti previsti, come nell’esempio
seguente:

// Uso della funzione 'somma'

// Il valore di $risultato è 2

$risultato = somma(1,1);

L’istruzione return viene utilizzata per restituire il risultato della
funzione (cioè, se preferiamo, il suo output) ed uscire da essa, riprendendo
l’esecuzione dal punto dello script in cui era stata invocata.

E’ interessante osservare che in un linguaggio "orientato alle
espressioni" come PHP, il risultato di una funzione rappresenta il valore
della funzione intesa come caso particolare di una espressione.




All’interno di una funzione è possibile, naturalmente, utilizzare delle
variabili, anche se in questo caso occorre prestare attenzione alla distinzione
tra variabili globali e variabili locali . Le variabili globali
sono quelle definite all’esterno della funzione (nella parte principale dello
script); viceversa, le variabili locali sono quelle definite al suo interno.

Le variabili locali ad una funzione non sono accessibili al di fuori di essa.
Ad esempio, supponiamo di aver definito una funzione "prova"
all’interno della quale utilizziamo una variabile di nome $numero: questa
variabile ( $numero ) non sarà utilizzabile all’esterno del corpo della
funzione.

<?

function prova() {

$numero = 3;

...

}

// Qui $numero non è definita!

?>

Le variabili globali, invece, sono accessibili anche dall’interno di una
funzione, ma solo se vengono esplicitamente dichiarate come globali, usando la
parola chiave global . Ad esempio:

<?

// $numero e' una variabile globale

$numero = 3;

function prova() {

// Quando dico $numero

// intendo la variabile globale

global $numero;

echo $numero;

}

?>

Nel precedente frammento di codice, la parola chiave global è stata
utilizzata per indicare che $numero è una variabile globale; in questo
modo $numero è accessibile anche dall’interno della funzione. Cosa
sarebbe successo se avessimo dimenticato di usare global ? In questo caso,
illustrato nell’esempio seguente, l’interprete PHP avrebbe considerato $numero
una variabile locale e l’avrebbe trovata "non definita".

<?

// $numero e' una variabile globale

$numero = 3;

function prova() {

// Ho dimenticato global!

// Questa istruzione non stampa nulla

// perche' $numero viene considerata locale

echo $numero;

}

?>

In alternativa all’uso di global è possibile, dall’interno di una
funzione, accedere ad una variabile globale utilizzando l’array associativo $GLOBALS .
Ad esempio, dall’interno della funzione "prova" si poteva accedere
alla variabile globale $numero , senza usare global , nel modo
seguente:

$GLOBALS["numero"]

Termina qui questa puntata dedicata
alle funzioni: alla prossima settimana.

Luca Balzerani , studente di
Informatica, è fondatore e presidente di LatoServer.it ,
sito dedicato alla programmazione server-side ed al backend in generale.

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

Chiudi i commenti