php简单变量的引用
$a = 1;
$b = &$a;
if ($b == $a++)
echo "true";
else
echo "false";
首先,创建了一个变量$a,并且将数值设定为了1;
然后,创建了一个变量$b,并将其作为对$a的一个引用;
最后这个判断语句中,包含两个opcode:POST_INC 和 IS_EQUAL。首先执行的是先返回后自增语句(POST_INC),首先返回1,然后 $a 自增为了2,因为 $b 是 $a 的一个引用,$b 也是2。然后执行的是比较语句(IS_EQUAL),因为 $b 的值是2,$a++ 的返回值是1,所以不相等。
$a = 5;
$foo = $a++ + $a--;
运行结果是11
$b = 5;
$paper = ++$b + $b++;
这个结果是12
答:
在PHP中,自增自减的运算优先级要高于加减乘除运算的,乘除的优先级略高于加减,所以是先执行自增自减的。++$a
和 $a++
的区别在于 ++$a
在运算的时候是先自增再运算的,而 $a++
则是先运算再自增。
for($dd = 2; $dd <= 5; ++$dd){
echo $dd;
}
和
for($dd = 2; $dd <= 5; $dd++){
echo $dd;
}
执行的结果是一样的