如何实现PHP静态变量的懒加载

发布时间:2024-12-11 13:34:28 作者:小樊
来源:亿速云 阅读:80

在 PHP 中,要实现静态变量的懒加载,可以使用静态内部类或者闭包

方法一:使用静态内部类

class Singleton {
    private static $instance;

    private function __construct() {
        // 构造函数私有化,防止外部实例化
    }

    public static function getInstance() {
        if (null === self::$instance) {
            self::$instance = new Singleton();
        }
        return self::$instance;
    }

    public function doSomething() {
        echo "Singleton instance: " . spl_object_hash(self::$instance);
    }
}

// 使用时
Singleton::getInstance()->doSomething(); // 输出 "Singleton instance: 某一个唯一的哈希值"

方法二:使用闭包

function singleton() {
    static $instance;

    if (null === $instance) {
        $instance = new class {
            public function doSomething() {
                echo "Singleton instance: " . spl_object_hash($this);
            }
        };
    }

    return $instance;
}

// 使用时
singleton()->doSomething(); // 输出 "Singleton instance: 某一个唯一的哈希值"

这两种方法都可以实现静态变量的懒加载,同时保证了单例模式。当第一次调用 getInstance()singleton() 时,会创建一个新的实例;之后的调用将返回已创建的实例。

推荐阅读:
  1. java和php有什么区别
  2. 使用PHP和HTML5 FormData实现无刷新文件上传的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:PHP静态变量的配置管理

下一篇:PHP静态变量在缓存系统中的应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》