PHP对象间接寻址运算符的运算符优先级(->;)

PHP对象间接寻址运算符的运算符优先级(->;),php,operators,operator-precedence,Php,Operators,Operator Precedence,“正式文档”页上的中缺少对象间接寻址运算符(->)。页面底部的一条评论说,此类运算符的优先级必须是最高的。但是,以下代码表明这不是真的,并且注释是错误的: class Foo { public $i; function __construct() { $this->i = 0; } } $foo = new Foo(); ++$foo->i; echo $foo->i; 输出: 1 那么,在前面提到的PHP操作符优先级表中,对象间接寻址操作符(->)的确切位置是什

“正式文档”页上的中缺少对象间接寻址运算符(
->
)。页面底部的一条评论说,此类运算符的优先级必须是最高的。但是,以下代码表明这不是真的,并且注释是错误的:

class Foo {
  public $i;
  function __construct() { $this->i = 0; }
}

$foo = new Foo();
++$foo->i;
echo $foo->i;
输出:

1

那么,在前面提到的PHP操作符优先级表中,对象间接寻址操作符(
->
)的确切位置是什么?

->
操作符优先级高于
++
,但低于
新建/克隆
。通过我的测试,它高于cli中的
[(数组操作符)
,低于
[
在ApachHttpD服务器中,所以我认为这是一个bug。

好的
->
必须比增量前的
++
具有更高的优先级,否则您将尝试增量
$foo
对象,而不是该对象的
$I
属性……因此注释是正确的,但是为什么PHP文档没有说->I更高的优先级为什么会从表中被忽略?在C++中,唯一的优先级较高的操作符是PHP中存在的。因此,注释可能仍然是错误的。也许因为PHP文档是错误的,或者可能是他们认为它是显而易见的,所以不需要记录这样的内容。详细程度好,也许这就是原因。谢谢。我的php版本是5.6,使用windows