我是靠谱客的博主 斯文花生,最近开发中收集的这篇文章主要介绍php 后期静态绑定 static 关键字的另一种用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。 虽然也可以调用非静态方法,但是不会在运行时绑定。

static 不再只是简单的静态修饰关键字。而是可以像下面这样调用类的静态方法,非静态方法,为什么静态非静态要分开说呢,因为调用的效果是不一样的。

<?php
class  A  {
    public static function  who () {
        echo  __CLASS__ ;
    }
    public static function  test () {
        static:: who ();  // 后期静态绑定从这里开始
     }
}

class  B  extends  A  {
    public static function  who () {
        echo  __CLASS__ ;
    }
}

B :: test ();
?> 

如上代码:B调用test方法,test方法调用who方法。而B类中重写了who方法,则实际调用的是B中的who方法,所以输出的__CLASS__是B  这就是说 static 调用的 静态方法会在运行时自动判断调用谁的方法。而self则只会调用定义它时所在的类中的方法。这是static的一个区别于其它调用的一个新特性。而static调用 非静态方法时则不会达到这种后期绑定的效果,所以叫后期静态绑定。

还有就是 static只能调用静态属性。

总结:

综上所述,static关键字可以实现以下功能:

1 调用类的静态方法   有后期静态绑定效果;

2 调用类的静态属性   有后期静态绑定效果;

3 调用类的非静态方法  没有后期静态绑定效果;

4 强调一下 不可以调用非静态属性;


最后

以上就是斯文花生为你收集整理的php 后期静态绑定 static 关键字的另一种用法的全部内容,希望文章能够帮你解决php 后期静态绑定 static 关键字的另一种用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部