首页 > 后端开发 > php教程 > 何时使用 `::` 与 `->` 进行 PHP 方法访问?

何时使用 `::` 与 `->` 进行 PHP 方法访问?

Linda Hamilton
发布: 2024-12-05 01:21:09
原创
389 人浏览过

When to Use `::` vs. `->` 用于 PHP 中的方法访问?
PHP 中方法访问的“/>`?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板