我想有一个参考资料,清楚地说明PHP的箭头方法调用操作符(->
)落在运算符绑定的顺序上。
遗憾的是 权威的PHP手册页面 上的操作符先例并没有列出它。
例子,有人可能会怀疑这是否可以抛出异常,因为 $price
最早被投给 string
然后才是方法调用 ->times()
试图。
return (string) $price->times($quantity);
在回答中,请说明这里的PHP版本之间是否有变化。
奖励:静态调用(::
)运算符的优先级与 ->
?
$foo->bar(...)
的分类是 PHP的语法 作为 成员表达式.
这是一种形式的 可调用的一种形式,它本身就是 可变的. 本质上,对一个对象的成员函数的调用与其他 "原始 "变量具有相同的优先权----------。$foo->bar(...)
而只是 $foo
应该被编译器同等对待。两者都不是 "运算符",所以它们与你链接的手册页面中列出的那些运算符不在同一个层次结构中。
对于你的奖励问题。::
被列为 范围调用表达式,它具有同样的 "优先性"。