[PHP]変数値の転送-値の転送と参照の転送

これはC言語と同じである必要があります(おそらくすべてCに基づいているためです)、ここではPHP言語で記述されています。

1つは、値の転送

値の転送は最も一般的な転送です。通常、変数a = 1、$ b = $ aなどはすべて値の転送です。

渡される方法は、元の変数によって保存された値をコピーし、新しくコピーされた値を別の変数に保存します。つまり、コピーされた変数はまったく影響を受けません。例えば:

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

この時点で、すべての出力は1になるはずです。

ただし、このときのメモリは次のようになることに注意して注意:
ください。注:変数はアドレスを格納します。つまり、aとbの両方に2つの1が配置されているアドレスが格納されます。

この場合、$ bを変更しても、aには影響しません。

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

このときの結果は1と2、つまりaまたはaです。

2、参照渡し

参照渡しは、変数の値が格納されいるメモリアドレスを別の変数に渡すことです。つまり、2つの変数が同じメモリ空間(同じ値)をポイントしています。

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

現時点では、結果はすべて1のままですが、メモリ内の状況は次のとおりです。

ここに画像の説明を挿入
この場合、$ bを再度変更すると、aの値が直接変更されます。

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

この場合、結果は2 2です。

おすすめ

転載: blog.csdn.net/qq_44899247/article/details/105299121