一文彻底搞懂php的后期静态绑定举例讲解
发布:smiling 来源: PHP粉丝网 添加日期:2023-10-16 18:06:26 浏览: 评论:0
这篇文章主要来带大家彻底搞懂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()
结语:
结合上面的例子和你自己的感悟,再去读一读文档中的说明,是不是清晰了很多?
Tags: php后期静态绑定
- 上一篇:PHP应用代码复杂度检测使用方法
- 下一篇:最后一页
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)