Link in PHP
In PHP è possibile assegnare il valore di una variabile a un'altra:
<?php
$num1 = 1;
$num2 = $num1; // assegniamo
echo $num1; // 1
echo $num2; // 1
?>
Con questo tipo di assegnazione, nella nuova variabile viene registrata una copia del valore della prima variabile. Ciò significa che le variabili non sono in alcun modo collegate tra loro e possono essere modificate in modo indipendente. Guardate l'esempio di codice:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - non è cambiato
?>
È possibile, tuttavia, fare in modo che non venga copiato il valore della variabile, ma un riferimento ad esso. In questo caso, modificando il valore di una variabile, cambierà anche il valore dell'altra.
Per passare il valore per riferimento, è necessario anteporre al nome della variabile il simbolo & (e commerciale):
<?php
$num1 = 1;
$num2 = &$num1; // passiamo per riferimento
?>
Ora, la modifica della prima variabile porterà anche alla modifica della seconda:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - è cambiato
?>
Allo stesso modo, se cambiamo la prima variabile, cambierà anche la seconda:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Spiegate quale sarà il risultato dell'esecuzione del codice:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Spiegate quale sarà il risultato dell'esecuzione del codice:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Spiegate quale sarà il risultato dell'esecuzione del codice:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Spiegate quale sarà il risultato dell'esecuzione del codice:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>