PHP   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP中的$a $是多么模糊?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
php手册声称:
$a = 1;
echo ++$a + $a++;

在它的语法下是模棱两可的,但对我来说似乎非常清楚. $a和$a首先从左到右进行评估,所以$a递增然后返回2,$a返回2然后递增. 2 2的总和是4,所以它会回显4.但是,The PHP Manual非常清楚地说它可以打印4或5.

php规范没有指定操作将从左到右执行吗?

即使它没有强制执行操作将从左到右执行,在这种情况下,它不会返回4无论如何?

编辑:我重读了页面,并声明它由每个特定的运算符决定.具有最低优先级,并且从左到右进行评估,因此看起来我之前的假设是正确的.我还是不明白.

解决方法

请注意,这只是我的拙见.

我认为这个结果下面的想法是,当有一个运算符时,没有一个aperands优先,并且在一个操作中,一个变量被保留为一个引用,而不是在所有计算过程中被其结果替换,直到最后一个(加,在这个例子中).所以当它从l-r开始时:

$a = 1;
++$a + $a++
operand 1 --> ++$a ==> $a = ++1 = 2
result (where $a = 2) --> 2 + (2++) = 4

否则:

$a = 1;
++$a + $a++
operand 2 --> $a++ ==> $a = 1
// new operation on the left side
// so the value gets incremented ==> $a = 2
result (where $a = 2) --> (++2) + 2 = 5

不过,我对此并不确定.

大佬总结

以上是大佬教程为你收集整理的PHP中的$a $是多么模糊?全部内容,希望文章能够帮你解决PHP中的$a $是多么模糊?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。