⚙️ Fondamenti: Che cos'è una Funzione?
Una Funzione è un blocco di codice riutilizzabile che esegue un'attività specifica. L'obiettivo principale delle funzioni è evitare la ripetizione del codice (principio **DRY**: *Don't Repeat Yourself*), rendendo i programmi più organizzati, leggibili e facili da mantenere.
1. La Sintassi Base: Definizione
Una funzione viene definita utilizzando la parola chiave function, seguita dal nome della funzione e da parentesi tonde (). Il codice che esegue l'attività è racchiuso tra parentesi graffe {}.
<?php// 1. Definizione della funzionefunction salutaUtente() {echo "Benvenuto nel sito!";}
// 2. Chiamata (Esecuzione) della funzionesalutaUtente();// Output: Benvenuto nel sito!// La funzione può essere chiamata più volte:salutaUtente();// Output: Benvenuto nel sito!?>
2. Passaggio di Dati: I Parametri
Le funzioni possono accettare dati esterni in ingresso, chiamati **parametri** (o argomenti), definiti all'interno delle parentesi tonde (). Questo permette alle funzioni di lavorare con dati diversi ogni volta che vengono chiamate.
<?php// La funzione accetta un parametro $nome.function salutaPersonalizzato($nome) {echo "Ciao, " . $nome . "! <br>";}
// Chiamata con argomenti diversisalutaPersonalizzato("Alice");// Output: Ciao, Alice!salutaPersonalizzato("Bob");// Output: Ciao, Bob!?>
3. Restituire un Valore: return
Molte funzioni non devono solo stampare un risultato, ma devono **calcolare un valore** e renderlo disponibile al resto del programma. Questo si ottiene con l'istruzione return. Quando PHP incontra return, la funzione termina immediatamente e restituisce il valore specificato.
<?php// La funzione calcola l'area e restituisce il risultato.function calcolaAreaRettangolo($base, $altezza) {$area = $base * $altezza;return $area;// Restituisce il valore calcolato}
// Il valore restituito viene assegnato a una variabile.$risultato1 = calcolaAreaRettangolo(10, 5);$risultato2 = calcolaAreaRettangolo(4, 8);echo "Area 1: " . $risultato1 . "<br>";echo "Area 2: " . $risultato2 . "<br>";// Output:// Area 1: 50// Area 2: 32?>