通过static关键字限制一个类最多只能创建出一个实例化对象

<?php
    class Single {
        private static $element = NULL;

        private function __construct() {
            echo "Hello World! ";
        }

        static function get() {
            if(is_null(self::$element)) {
                self::$element = new self();
                echo 'I will never give up. ';
                return self::$element;
            }
        }
    }

    $single = Single::get();
    $double = Single::get();

核心在于static是属于类而不是属于对象的,所以改变值会反应到类。设定初值为NULL,在方法里赋值,而如果是NULL,在方法里调用,赋为new self()在外界就变成了$single = new Single(),而$double调用时什么都不会发生了,此时静态变量已经不是NULL了不会进入判断体

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 知识, 代码段

添加新评论