关于 PHP 的一个**运算问题
資深大佬 : absolutelynull 0
<?php $n = -2; echo $n ** 2; // $n = -2; -2 ** 2 = 4 echo '|'; echo -2 ** 2; // -2 ** 2 = 4 //结果为: 4|-4
// 正常来说的话 -2 ** 2 = -4 的吧
为啥把-2 赋值给一个变量之后 就是 $n**2=4,其实$n=-2
大佬有話說 (16)
<?php $n = -2; echo $n ** 2; // $n = -2; -2 ** 2 = 4 echo '|'; echo -2 ** 2; // -2 ** 2 = 4 //结果为: 4|-4
// 正常来说的话 -2 ** 2 = -4 的吧
为啥把-2 赋值给一个变量之后 就是 $n**2=4,其实$n=-2
你说的是这样 eval(“$n ** 2”) = eval(“-2 ** 2”) = eval(“-(2**2)”)
这个又不是字符串拼接,不是拼好了再执行
-2 ** 2 应该是运算符优先级导致的, – ( 2 ** 2 )
php > echo (-2) ** 2;
4