Ora che abbiamo definito cosa sono parametri formali e parametri reali, procediamo con le nostre lezioni php, analizzando un altro concetto cardine nel mondo della programmazione informatica, strettamente collegato alle funzioni: il concetto di SCOPE.
Lo scope definisce il contesto in cui una determinata porzione di codice viene eseguita. Può essere globale o locale.
Nel caso delle nostre funzioni, avremo a che fare con lo scope locale: tutto quello che sarà dichiarato e manipolato al loro interno non sarà visibile esternamente.
In tal senso, possiamo immaginare le funzioni come dei buchi neri: dall’esterno non possiamo vedere nulla al loro interno. Le nostre funzioni “buco nero”, però, hanno una sorta di piccolo tasto ed uno schermo; nel momento in cui premiamo il tasto (ovvero richiamiamo la funzione per attivarla), si attiva un meccanismo al loro interno che ci mostra qualcosa sullo schermo (ciò che, appunto, vediamo concretamente a schermo)
Vediamolo nel codice:
<?php $num1=24; $num2=37; function sum(){ echo $num1+$num2; } sum(); ?>
Questa funzione non ci restituirà il risultato corretto e ci darà dei messaggi di warning, che ci avviseranno che le variabili $num1 $num2 non sono definite.
Questo avviene proprio perché dall’interno della funzione non è possibile utilizzare tutto ciò che è dichiarato al suo esterno (in questo caso le variabili $num1 e $num2)
Come facciamo, dunque, a rendere le nostre variabili visibili all’interno dello scope? Semplice: le “facciamo entrare” dichiarando la funzione con due parametri formali e, nel momento in cui andremo a richiamarla per utilizzarla, le passeremo le due variabili esterne come parametri reali.
<?php $num1=24; $num2=37; function sum($number1, $number2){ echo $number1+$number2; } sum($num1,$num2); ?>
Adesso il risultato visualizzato in output sarà corretto.
Abbiamo, quindi, aperto il cancello della funzione, fatto entrare le due variabili e mostrato il risultato della loro somma.
PHP RETURN
Nel codice scritto fino ad ora il risultato della somma apparirebbe scritto nel terminale.
Le funzioni, però, non vengono concretamente utilizzate per far apparire un risultato a schermo. Il loro utilizzo pratico, è quello di fornirci un dato che sarà riutilizzato all’interno del nostro codice, esternamente alla funzione.
Per poterlo riutilizzare utilizzeremo la keyword “return” all’interno della funzione.
Vediamo un esempio:
<?php $num1=24; $num2=37; function sum($number1, $number2){ return $number1 + $number2; } $sumResult = sum($num1,$num2); echo "Il risultato della somma é: $sumResult"; ?>
In output vedremo:
Questa volta, però, come notiamo nell’esempio, abbiamo avuto la necessità di inserire (assegnare) il risultato della funzione all’interno di una nuova variabile ($sumResult), così da poter effettivamente inserire, successivamente, la variabile in una stringa e mostrare il suo valore effettivo nella nostra echo.
Se non avessimo dichiarato la variabile $sumResult, il “”return” sarebbe stato fine a sé stesso e non avremmo potuto utilizzarne il risultato per altri scopi (in questo caso per stamparlo in console, ma le applicazioni avrebbero potuto essere le più svariate)
Siamo finalmente riusciti a far entrare variabili esterne nella funzione – utilizzando parametri formali e parametri reali – ma anche a far uscire il risultato dell’elaborazione all’esterno della funzione per utilizzarlo.