首先看一个面试题:
$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 = 1; $b = &$a; $b = $a++; echo "a: $a; b: $b";
版权声明:本文博主原创文章,博客,未经同意不得转载。