首页 > 开发 > PHP > 正文

php中非静态环境下转发调用的代码实例

2024-05-04 23:06:06
字体:
来源:转载
供稿:网友
“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。

下面是php中非静态环境下转发调用的代码实例的相关内容,文章教程主要讲述与静态 转发 调用 相关的一些技术与知识,更多的内容欢迎大家访问http://www.VeVb.com,获取更多最新教程,下面是教程讲解:

静态访问类的成员:

1.非转发调用

1)类名明确(A::funcA())

2.转发调用

    1)self::    2)parent::    3)static::    4)forward_static_call()    5)get_called_class()

注意:
“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。

<?phpclass A {    public static function foo() {        static::who();    }    public static function who() {        echo __CLASS__."/n";    }}class B extends A {    public static function test() {        A::foo();        parent::foo();        self::foo();    }    public static function who() {        echo __CLASS__."/n";    }}class C extends B {    public static function who() {        echo __CLASS__."/n";    }}C::test();?>

运行结果:

ACC

Note:
在非静态环境下,所调用的类即为该对象实例所属的类。由于 $this-> 会在同一作用范围内尝试调用私有方法,而 static:: 则可能给出不同结果。另一个区别是 static:: 只能用于静态属性。

继承的财产属于自己

继承链 优先访问当前类,依据保留字特性进行访问,然后依据继承链进行访问。

$this 访问成员 (调用上下文)

self:: 访问成员(解析上下文)

<?php class A{    protected $value = "A value";     public function printValue(){        echo $this->value;    }}class B extends A{   protected $value = "B value";}$app = new B();$app->printValue();
运行结果:B value
<?php class A{    //只有将属性定义为静态的才能使用self::进行调用    static protected $value = "A static value ";    public function printValue(){        echo self::$value;    }} class B extends A{    static protected $value = "B static value";} $app = new B();$app->printValue();
运行结果:A static value
<?phpclass A{    static protected $value = "A static value ";} class B extends A{    public function printValue(){        echo self::$value;    }}$app = new B();$app->printValue();
运行结果:A static value

End. 教程到这里讲完了,阅读是否有所收获呢?本站还提供有静态 转发 调用 相关的内容,欢迎继续阅读。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表