我要“按引用传递”给我们的实习生解释之间的差异,在PHP“按值传递”,并做了这个简单的脚本:PHP通过引用传递/值 - 问题
$a=5;
$b=&$a;
$a=8;
echo $b;
// prints 8
$a=5;
$b=$a; //no &
$a=8;
echo $b;
// prints 5
然而,使用PHP -qa产量在PHP-CLI运行以下命令:
php > $a=5;
php > $b=&$a;
php > $a=8;
php > echo $b;
8
php > // prints 8
php > $a=5;
php > $b=$a; //no &
php > $a=8;
php > echo $b;
8
php > // prints 5
应该不是$b=$a;
取消链接$ a和$ b?
...所以我就curius,并尝试:
php > $b=3;
php > echo $a;
3
那么,为什么我得到这个错了吗?这里发生了什么?看起来参考设置有点困难,即使它应该在行$b=$a
清除?我也试过:
php > $e=5; $f=$e; $e=6; echo $f;
5
...其中按预期工作。
$a
和$b
似乎永久链接?我在这里错过了一些重点吗?如何“取消链接”$a
和$b
变量?
你试过'未设置($ b)'在第二部分之前? –
如果您没有明确表示相同的范围,请不要在相同范围内重用变量名称。 – hakre
+1,因为这个问题显示了如何试图向新手解释一些东西可以帮助你更好地理解它。 – Arkh