PHP 趣事

今天同事发现了个有趣的PHP问题,我看了看,觉得挺好玩,顾记录下。

问题:请猜猜下面的C的值

原“问题代码”:

 

我的验证代码:

正确答案:都等于“  3  ”。

我的解释:在获取变量的引用地址和使用该变量的值期间,此变量保存的值会发生改变。

具体解释,执行加法运算时,是将符号两边的最新的值相加。

具体分析,代码一,获取第一个变量a时,其值本是1,获取第二个a时,其值也是1,然后执行了$a++,再然后,执行加法运算。注意此时,加法符号的后面的加数是1,前面的加数是第一个的引用地址,其值变了,变成了2,所以结果是3。代码二,执行第一个加法运算时,前后两边的a的值都没变,都是1,所以第一个加法的结果是数值2;执行第二个加法运算时,后面的加数是1,前面的加数是上一次的加法结果2,所以结果也是3。代码三,同代码二。

发表评论