Enlaces en PHP
En PHP se puede asignar el valor de una variable a otra:
<?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
$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
$num1 = 1;
$num2 = &$num1; // pasamos por referencia
?>
Ahora, modificar la primera variable también cambiará la segunda:
<?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
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Explica cuál será el resultado de ejecutar el código:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Explica cuál será el resultado de ejecutar el código:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Explica cuál será el resultado de ejecutar el código:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Explica cuál será el resultado de ejecutar el código:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>