Link in PHP

In PHP è possibile assegnare il valore di una variabile a un'altra:

php<?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<?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<?php
  $num1 = 1;
  $num2 = &$num1; // passiamo per riferimento
?>

Ora, la modifica della prima variabile porterà anche alla modifica della seconda:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2 = 2;
  
  echo $num1; // 2 - è cambiato
?>

Allo stesso modo, se cambiamo la prima variabile, cambierà anche la seconda:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num1 = 2;
  
  echo $num2; // 2
?>
Задание 1

Spiegate quale sarà il risultato dell'esecuzione del codice:

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1;
  echo $num2;
?>
Задание 2

Spiegate quale sarà il risultato dell'esecuzione del codice:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2++;
  
  echo $num1;
  echo $num2;
?>
Задание 3

Spiegate quale sarà il risultato dell'esecuzione del codice:

php<?php
  $num1 = 1;
  $num2 = $num1;
  
  $num1++;
  $num2++;
  
  echo $num1;
  echo $num2;
?>
Задание 4

Spiegate quale sarà il risultato dell'esecuzione del codice:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  
  $num1++;
  $num2++;
  
  echo $num1;
  echo $num2;
?>