Heim > Fragen und Antworten > Hauptteil
Heute habe ich versucht, ein Singleton-Muster zu schreiben, und dann das Singleton-Objekt zweimal instanziiert und es jeweils ausgegeben. Das erste Ergebnis ist null und das zweite zeigt den Objekttyp. Was ist los? Schauen Sie. ,Danke!
高洛峰2017-05-16 13:16:53
你应该把返回单例对象放在if判断外面不然第一次没有创建对象时无法返回对象
static public function GetConnec()
{
if(!self::$instance instanceof self)
{
self::$instance =new self;//若当前对象实例不存在
}
$temp=self::$instance; //获取当前单例
return $temp::Con() ; //调用对象私有方法连接 数据库
}
迷茫2017-05-16 13:16:53
第一次调用没有将new出来的对象返回,所以为null,第二次调用singleton,由于第一次已经实例化了一个对象,则返回第一次实例化的对象,第二次又返回值,返回值为第一次调用实例化的对象