我正在尝试创建一个父类,如:
class CommonModel extends \Common\Model\CommonModel {
protected static $_instance = null; //singleton
/**
* singleton
* @return null|static
* @Date 2017/4/7 14:06
*/
public static function instance(){
if(!isset(self::$_instance)){
self::$_instance = new static();
}
return self::$_instance;
}
UserModel和UserThirdModel实现CommonModel
我创作的时候 $ user = UserModel :: instance(); //创建用户实例
$ userThird = UserThirdModel :: instance(); // userModel retured。
我发现问题来自"if(!isset(self::$_instance)){"
我的问题是如何根据不同的模型创建不同的实例
由于
答案 0 :(得分:1)
您可以使用$_instance
http://php.net/manual/en/function.get-called-class.php
get_called_class()
转换为实例数组
首先改变
protected static $_instance = array(); //singleton array
然后使用self::$_instance[get_called_class()]
,例如......
public static function instance(){
if(!isset(self::$_instance[get_called_class()])){
self::$_instance[get_called_class()] = new static();
}
return self::$_instance[get_called_class()];
}