PHP 中的 ::(双冒号)与 ->(箭头)
在 PHP 中,访问类方法可以通过两种不同的方式完成方式:::(双冒号)和->(箭头)。差异。
范围和用法
确定适当运算符的主要因素是使用它的上下文,例如属性和非静态方法。相反,对于类成员,例如静态属性和方法,最好使用::。
语法解释
当 -> 的左操作数是对象实例时,表示正在访问的方法属于该实例。 :: 建议在类本身而不是特定实例上调用该方法。
静态成员访问
通常,:: 用于静态成员访问,但是,在极少数情况下,:: 也可以用于访问实例成员。派生类中的方法。
方法调用语义
-> 的语义运算符比 :: 更复杂。通过 -> 拨打电话如果目标方法未声明为静态并且存在兼容的对象上下文,则会导致实例调用。否则,它将被视为静态调用。
示例
考虑以下代码片段:
class A { public $prop_instance; public function func_instance() { echo "in ", __METHOD__, "\n"; } } class B extends A { public static $prop_static; public function func_static() { echo "in ", __METHOD__, "\n"; } } $a = new A; $b = new B; echo '$a->prop_instance: ', $a->prop_instance, "\n"; echo 'B::$prop_static: ', B::$prop_static, "\n"; $b->func_instance(); B::func_static();
输出:
$a->prop_instance: B::$prop_static: in B::func_instance in B::func_static
一致的用法->例如静态成员的成员和 :: 确保清晰度并防止歧义的解释。
以上是何时使用 `::` 与 `->` 进行 PHP 方法访问?的详细内容。更多信息请关注PHP中文网其他相关文章!