
GUIDE PER ASPIRANTI PROGRAMMATORI
Passaggio per valore e per riferimento in PHP
Negli esempi precedenti abbiamo passato alle funzioni delle variabili, che ricordiamo essere delle locazioni di memoria che contengono dei dati. Se provassimo a modificare il contenuto di una variabile dichiarata esternamente utilizzando una funzione, cosa succederebbe? Vediamolo. <?php $num=7; function changeValue($number){ echo ++$number."\n"; } echo $num."\n";//Prima echo changeValue($num); echo $num."\n";//Seconda echo //In output avremo: //7…


Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
- Che cos'è una funzione in PHP
- Funzioni built-in e User function in PHP
- Parametri formali e parametri reali in PHP
- Funzioni stringhe in PHP
- Funzioni numeriche in PHP
- Funzioni PHP per lavorare con gli Array
- Passaggio per valore e per riferimento in PHP
- Funzioni dinamiche in PHP
- Funzioni anonime in PHP
- Parametro di default in PHP
- Lo scope in PHP
Negli esempi precedenti abbiamo passato alle funzioni delle variabili, che ricordiamo essere delle locazioni di memoria che contengono dei dati. Se provassimo a modificare il contenuto di una variabile dichiarata esternamente utilizzando una funzione, cosa succederebbe?
Vediamolo.
<?php $num=7; function changeValue($number){ echo ++$number."\n"; } echo $num."\n";//Prima echo changeValue($num); echo $num."\n";//Seconda echo //In output avremo: //7 //8 //7 ?>
Come possiamo notare dal risultato, nel momento in cui, esternamente alla funzione, abbiamo chiesto al comando php echo (Seconda echo) di mostrarci cosa c’è nella variabile $num dopo la function, il risultato è stato identico a quello che ci ha mostrato l’echo prima della chiamata della funzione (Prima echo). Questo è successo perché, in questo caso, richiamando la funzione, le abbiamo passato delle variabili per valore (vale a dire una copia).
Esistono quindi due diverse modalità di passaggio dei parametri a una funzione “per valore e per riferimento“
- Per valore: stiamo passando e manipolando una copia della variabile presente nella locazione di memoria
- Per riferimento: stiamo passando proprio il contenuto della locazione di memoria senza farne prima una copia
Il passaggio per valore a codice avviene tramite un “&” posta vicino al parametro formale della funzione
<?php $num=7; function changeValue(&$number){ echo ++$number."\n";//Incrementa il valore di $number di uno } echo $num."\n";//Prima echo changeValue($num); echo $num."\n";//Seconda echo //In output avremo: //7 //8 //8 ?>
Adesso il php echo immediatamente sotto la chiamata della funzione (Seconda echo) ci mostra un risultato diverso rispetto all’echo prima della chiamata della funzione (Prima echo) perché la funzione ha modificato l’interno della locazione di memoria a differenza della funzione che riceve una copia del contenuto della variabile.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.