PHP单例模式疑惑
阿神
阿神 2017-04-10 15:17:03
[PHP讨论组]

比如下边这个类,这个是我现在常用的代码:

<?php

class Instance{

    public static $_database;

    public static function Database($_collection=null){
        if(self::$_database === NULL){
            require 'Database.php';
            self::$_database = new Database;
        }
        if($_collection) return self::$_database->collection($_collection);
        else return self::$_database;
    }

}

?>

如果我执行下边的代码,那么到底是 new 了 Database 几次?到底有没有起到单例的作用?

$collection1 = Instance::Database('test1');
$collection2 = Instance::Database('test2');
$collection3 = Instance::Database('test3');
阿神
阿神

闭关修行中......

全部回复(2)
天蓬老师

你在new的前面加个echo调试一下不就知道了?

如果你不愿意动手,那么答案是:只new了一次,之后调用的时候 if(self::$_database === NULL)就为false了,不会再执行到new

ringa_lee

调用一次,就new了一次

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号