请解释下面的说明

时间:2018-01-13 08:40:31

标签: php

在这里,我有以下代码,它输出像21,21。 21美元的价值是多少

 $a = '1';
 $b = &$a;
 $b = "2$b";
 echo $a.", ".$b;

输出

 21,21

2 个答案:

答案 0 :(得分:2)

您通过&参考$ a参考$ b符号。这意味着如果您更改$ b的值,您也将更改$ a。

换句话说,$ b的内存地址为$ a

答案 1 :(得分:0)

$b = &$a;

这是罪魁祸首。如果您只想将$ b作为$ a的副本,请将语句更改为

$b = $a;

通过使用&,您不会复制,而是说两个变量都应指向相同的内存位置('按引用传递'而不是'按值传递')。因此,如果您使用一个变量(例如$b)在内存位置存储不同的值,则另一个变量$a也会自动更新。