一文彻底搞懂php的后期静态绑定举例讲解

 更新时间:2023年06月28日 11:07:38   作者:church  
这篇文章主要来带大家彻底搞懂php的后期静态绑定的举例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

举个例子说明

看了很多人的解释,都是照搬文档,说得非常抽象。

这里我举个例子说明一下,应该很多人能秒懂。

<?php 
interface FactoryInterface
{
    public function create();
}
abstract class Factory implements FactoryInterface
{
    public static $instance = null;
    public function create()
    {
        throw new \Exception('Please implement create method.');
    }
    public static function getInstance()
    {
        if (is_null(self::$instance)) {
            self::$instance = new static();
        }
        return self::$instance;
    }
}
class Car
{
    public function run()
    {
        echo "I'm running";
    }
}
class CarFactory extends Factory
{
    public function create()
    {
        return new Car();
    }
}
CarFactory::getInstance()->create()->run();

上面这个抽象类的getInstance静态方法中,我想实例化一个子类,怎么办?除了new static, 没有别的方法,因为你根本不知道子类的名称到底是什么,它可以被命名成任意合法的名称。
还有其它场景,比如说在父类的静态方法中调用子类的静态方法,怎么办?也是一样static::childMethod()

结语

结合上面的例子和你自己的感悟,再去读一读文档中的说明,是不是清晰了很多?

以上就是一文彻底搞懂php的后期静态绑定举例讲解的详细内容,更多关于php后期静态绑定的资料请关注脚本之家其它相关文章!

相关文章

  • php列出mysql表所有行和列的方法

    php列出mysql表所有行和列的方法

    这篇文章主要介绍了php列出mysql表所有行和列的方法,涉及php操作mysql数据库的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP实现读取Excel文件的记录(二)

    PHP实现读取Excel文件的记录(二)

    在前文中介绍的方法有些麻烦,因为必须要加载很多的文件。本文介绍的方法简单了很多,只需要加载两个文件即可。需要的可以参考一下
    2022-03-03
  • PHP生成不重复标识符的方法

    PHP生成不重复标识符的方法

    这篇文章主要介绍了PHP生成不重复标识符的方法,涉及时间函数time的md5转换,uniqid()函数及GUID的应用,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • php 格式化数字的时候注意数字的范围

    php 格式化数字的时候注意数字的范围

    因为 数据库中 id 可能会很大 如果使用%d的话,就可能出现因为超出了范围,而到不到正确的结果。所以,个人建议 对id进行格式化的时候 使用%.0f 比 %d 要 好的多。
    2010-04-04
  • phpMyAdmin 链接表的附加功能尚未激活的问题

    phpMyAdmin 链接表的附加功能尚未激活的问题

    安装了phpMyAdmin之后一直有这个问题。虽然知道自己可能用不到这些功能,但是不解决这个问题总觉着phpMyAdmin和MySQL的安装没有成功。
    2010-08-08
  • PHP中VC6、VC9、TS、NTS版本的区别与用法详解

    PHP中VC6、VC9、TS、NTS版本的区别与用法详解

    ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查
    2013-10-10
  • PHP非对称与对称双向加密解密的方式

    PHP非对称与对称双向加密解密的方式

    RSA非对称加密解密算法是一种广泛应用于信息安全领域的加密算法,AES、DES、3DES都是对称加密算法,也就是说加密和解密使用的是同一个密钥,本文给大家介绍了PHP非对称与对称双向加密解密的方式,需要的朋友可以参考下
    2023-10-10
  • PHP中让json_encode不自动转义斜杠“/”的方法

    PHP中让json_encode不自动转义斜杠“/”的方法

    这篇文章主要给大家分享了PHP中如何让json_encode不自动转义斜杠“/”的两种方法,文中给出了详细的示例代码,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-02-02
  • PHP const定义常量及global定义全局常量实例解析

    PHP const定义常量及global定义全局常量实例解析

    这篇文章主要介绍了PHP const定义常量及global定义全局常量实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • php更新mysql后获取影响的行数发生异常解决方法

    php更新mysql后获取影响的行数发生异常解决方法

    mysql_affected_rows函数当UPDATE前后的数据一样时会返回异常值,接下来为大家介绍个简单的解决方法感兴趣的朋友可以参考下哈
    2013-03-03

最新评论