官方文档页面上的PHP运算符优先级表中缺少对象间接运算符(->
)。页面底部的一条评论说,这种运算符的优先级必须是最高的。然而,以下代码表明这不是真的,并且注释是错误的:
class Foo {
public $i;
function __construct() { $this->i = 0; }
}
$foo = new Foo();
++$foo->i;
echo $foo->i;
输出:
1
那么,在前面提到的PHP运算符优先级表中,对象间接运算符(->
)的确切位置是什么?
->
运算符优先级高于++
,但低于new/clone
。通过我的测试,它在cli中高于[(array operator)
,在Apatch httpd服务器中低于[
,所以我认为这是一个错误。