【发布时间】:2019-02-07 19:20:18
【问题描述】:
类:
if( ! class_exists('MY_CLASS') ) :
class MY_CLASS {
private static $_instance = null;
private static $counter = 0;
private function __construct() {
self::$counter++;
// Do stuff here.
echo "instances: " . self::$counter . "<br>";
}
// Other functions here
public static function instance() {
if ( is_null( self::$_instance ) ) {
self::$_instance = new MY_CLASS();
}
return self::$_instance;
}
}
function ctp() {
return MY_CLASS::instance();
}
// initialize
ctp();
endif; // class_exists check
$counter 始终为 2。我检查过,函数 instance() 两次进入 if 条件 is_null( self::$_instance )。
真的不能让这个类只被实例化一次。请帮忙。
【问题讨论】:
-
class 是保留字;你不能为你的班级命名...没有来自你的编辑的抱怨?更一般地说,您应该尝试在命名变量/对象时保持一致,例如我看到你有两个静态变量,一个带下划线,一个没有。看看PSR 以获得一些灵感。
-
抱歉,为了更清楚,我改了类名。我没有把它当作 CLASS。很抱歉造成混乱......