Le funzioni

Le funzioni sono fondamentali per creare del codice che possiamo riutilizzare. Possiamo creare del codice che eseguite un’operazione complessa e racchiuderlo in una funzione da poter riutilizzare più volte nello stesso progetto. PHP ci mette già a disposizioni centinaia di funzioni pronte da usare: nella nostra vita di developer, però, definiremo centinaia di nostre funzioni per i compiti più disparati.

Ogni funzione è identificata da un nome univoco e da una lista di variabili, che si chiamano argomenti:

Ricordiamoci di dichiarare la funzione prima di usarla, altrimenti riceveremo un errore. Tutte le funzioni sono globali: sono sempre disponibili per il nostro progetto.

Come detto, le funzioni accettano anche uno o più parametri, detti argomenti, separati da virgola. Quando dichiariamo una funzione, definiamo anche quali parametri la funzione accetta.

La funzione raddoppia(), accetta un solo parametro. All’interno della funzione sarà disponibile la variabile $numero che conterrà il valore che passiamo alla funzione. Possiamo passare qualsiasi tipo di valore.

Passaggio di argomenti per valore

Di default, quando passiamo un valore ad una funzione, gli passiamo il suo contenuto. La funzione, cioè, non modifica la variabile originale. Nell’esempio che segue, passiamo alla funzione raddoppia() il contenuto della variabile $a, non la variabile stessa: essa infatti, non cambia.

Passaggio di argomenti per riferimento

Se invece vogliamo che la funzione modifichi la variabili originale, possiamo usare l’operatore & davanti al nome dell’argomento quando dichiariamo la funzione. In questo caso, la funzione raddoppia() modificherà direttamente la variabile che gli viene passata, possiamo dire abbiamo passato un parametro per riferimento, cioè abbiamo passato alla funzione un legame alla variabile $b e non la variabile stessa.

Argomenti di default

A volte, è necessario che uno o più argomenti siano opzionali. Per farlo, possiamo specificare un argomento ed assegnargli un valore di default. Se non lo passiamo esplicitamente, l’argomento assumerà quel valore:

Facciamo attenzione: quando abbiamo più argomenti non tutti opzionali, ricordiamoci di posizionarli più a destra:

Tipi di argomenti

Se abbiamo bisogno di  specificare il tipo del singolo argomento, possiamo farlo scrivendo il nome del tipo prima del nome dell’argomento. Usiamo questa possibilità per accertarci che alla nostra funzione vengano passati dei valori del tipo richiesto. Se non corrisponde, l’esecuzione verrà interrotta e verrà generato un errore.

L’istruzione Return

Come avrete notato, molte funzioni terminano con l’istruzione return. Possiamo avere principalmente due tipi di funzioni, quelle che restituiscono un valore e quelle che non lo fanno, perché magari eseguono solo delle istruzioni e non ci interessa un eventuale risultato. Usiamo l’istruzione return per permettere alla funzione di restituire un singolo valore al chiamante.  Ricordiamoci che l’istruzione return ci fa uscire immediatamente dalla funzione (cioè interrompe la sua esecuzione), le eventuali istruzioni che scriviamo in seguito non verranno eseguite. È per questo che solitamente è l’ultima istruzione inserita in una funzione.

Funzioni ricorsive

PHP permette di scrivere funzioni che, al momento dell’esecuzione, chiamano sé stesse.