Enlaces en PHP

En PHP se puede asignar el valor de una variable a otra:

php<?php
  $num1 = 1;
  $num2 = $num1; // asignamos
  
  echo $num1; // 1
  echo $num2; // 1
?>

Con esta asignación, en la nueva variable se escribe una copia del valor de la primera variable. Esto significa que las variables no están relacionadas entre sí y se pueden modificar de forma independiente. Observa el ejemplo de código:

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1; // 1 - no ha cambiado
?>

Sin embargo, se puede hacer que no se copie el valor de la variable, sino la referencia a él. En este caso, al cambiar el valor de una variable, también cambiará el valor de la otra.

Para pasar el valor por referencia, se debe colocar un ampersand antes del nombre de la variable:

php<?php
  $num1 = 1;
  $num2 = &$num1; // pasamos por referencia
?>

Ahora, modificar la primera variable también cambiará la segunda:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2 = 2;
  
  echo $num1; // 2 - ha cambiado
?>

Del mismo modo, si cambiamos la primera variable, también cambiará la segunda:

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

Explica cuál será el resultado de ejecutar el código:

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

Explica cuál será el resultado de ejecutar el código:

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

Explica cuál será el resultado de ejecutar el código:

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

Explica cuál será el resultado de ejecutar el código:

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