Junior — Middle
¿En qué se diferencian la transferencia de datos por enlace y por valor, y cómo afecta esto a los cambios en los datos dentro del programa?
sobes.tech AI
Respuesta de la IA
El envío de datos por valor significa que, al pasar una variable a una función, se crea una copia de la misma. Los cambios dentro de la función no afectan al original. En PHP, esto es característico de los tipos escalares (int, string, bool) y de los arrays (hasta PHP 7, con copia al escribir).
El envío por referencia significa que se pasa a la función una referencia a los datos originales, y cualquier cambio dentro de la función se refleja en la variable original. En PHP, esto se implementa con el símbolo de ampersand (&) antes del parámetro.
Ejemplo:
function addOneByValue($num) {
$num += 1;
}
function addOneByReference(&$num) {
$num += 1;
}
$a = 5;
addOneByValue($a); // $a seguirá siendo 5
addOneByReference($a); // $a será 6
De esta manera, el envío por referencia permite que la función modifique los datos pasados, mientras que por valor, no.