一文彻底搞懂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加密解密类实例分析

    PHP加密解密类实例分析

    这篇文章主要介绍了PHP加密解密类,实例分析了php实现加密与解密的原理与相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • PHP对文件进行加锁、解锁实例

    PHP对文件进行加锁、解锁实例

    这篇文章主要介绍了PHP对文件进行加锁、解锁实例,本文直接给出实现代码和代码的使用方法,需要的朋友可以参考下
    2015-01-01
  • PHP数据过滤的方法

    PHP数据过滤的方法

    关于如何确保数据过滤无法被绕过有各种各样的观点,今天我们就来看看PHP的数据过滤,对你一定会有帮助的。
    2013-10-10
  • php 常用类汇总 推荐收藏

    php 常用类汇总 推荐收藏

    php 常用类总汇,充分利用,提高开发效率与增强php的功能实现。
    2010-05-05
  • PHP5.3新特性小结

    PHP5.3新特性小结

    这篇文章主要介绍了PHP5.3新特性,结合实例总结分析了PHP5.3新增的命名空间、静态绑定、匿名函数、操作符及垃圾回收机制的相关技巧,需要的朋友可以参考下
    2016-02-02
  • PHP 文件编程综合案例-文件上传的实现

    PHP 文件编程综合案例-文件上传的实现

    本篇文章是对PHP中文件上传的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • php将print_r处理后的数据还原为原始数组的解决方法

    php将print_r处理后的数据还原为原始数组的解决方法

    下面小编就为大家带来一篇php中将print_r处理后的数据还原为原始数组的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考
    2016-11-11
  • phpMyAdmin2.11.6安装配置方法

    phpMyAdmin2.11.6安装配置方法

    今天调试PHP数据库Mysql,在单位的电脑上安装phpMyAdmin数据库管理软件,本来是很简单的事,却出现了几个问题:1/无法载入mcrypt扩展,请检查PHP配置;/配置文件现在需要绝密的短语密码(blowfish_secret);3/#2003-服务器没有响应。
    2008-08-08
  • PHP和JAVA中的重载(overload)和覆盖(override) 介绍

    PHP和JAVA中的重载(overload)和覆盖(override) 介绍

    PHP不支持方法和操作符重载。JAVA不支持操作符的重载(但是“+”实际上是一种操作符重载)
    2012-03-03
  • phpstorm断点调试方法图文详解

    phpstorm断点调试方法图文详解

    这篇文章主要介绍了phpstorm断点调试方法,结合图文形式详细分析了phpstorm断点调试的基本配置方法、使用技巧与注意事项,需要的朋友可以参考下
    2023-04-04

最新评论