[PHP] Transferencia de valor de transferencia de valor variable y transferencia de referencia

Debería ser igual que el lenguaje C (tal vez porque todos están basados ​​en C), aquí está escrito en lenguaje PHP.

Uno, transferencia de valor

La transferencia de valor es la transferencia más común. Las variables a = 1, $ b = $ ay así sucesivamente que normalmente ve son todas transferencias de valor.

La forma en que se pasa es copiar el valor guardado por la variable original y guardar el valor recién copiado en otra variable, es decir, la variable copiada no se ve afectada de ninguna manera. P.ej:

$a = 1;
$b = $a;
echo $a,$b;

En este momento, la salida debería ser 1.

Pero debe tenerse en cuenta que la memoria en este momento debería ser así: Nota:
Nota: Las variables almacenan direcciones, es decir, tanto a como b almacenan las direcciones donde se ubican dos unos.

En este caso, si cambiamos $ b, no afectará a:

$a = 1;
$b = $a;
$b = 2;
echo $a,$b;

El resultado en este momento es 1 y 2, es decir, a o a.

Dos, pase por referencia

Pasar por referencia es pasar la dirección de memoria donde se almacena el valor de la variable a otra variable, es decir, dos variables apuntan al mismo espacio de memoria (también el mismo valor):

$a = 1;
$b = &$a;
echo $a,$b;

En este momento, el resultado sigue siendo 1, pero la situación en la memoria es:

Inserte la descripción de la imagen aquí
En este caso, si cambiamos $ b nuevamente, cambiará directamente el valor de a:

$a = 1;
$b = &$a;
$b = 2;
echo $a,$b;

En este caso, el resultado es dos 2.

Supongo que te gusta

Origin blog.csdn.net/qq_44899247/article/details/105299121
Recomendado
Clasificación