<?php// 单例模式class Singleton{ PRotected static $ins = null; /** * 禁止子类重载 __construct() 构造方法 */ private final function __construct() { // 禁止 new } /** * 禁止子类重载 __clone() 方法 */ protected final function __clone() { // 禁止 clone } /* public static function getIns() { if(self::$ins === null){ self::$ins = new self(); } return self::$ins; } */ /** * 后期静态绑定 */ public static function getIns() { if(static::$ins === null){ static::$ins = new static(); } return static::$ins; }}$obj1 = Singleton::getIns();$obj2 = Singleton::getIns();var_dump($obj1 === $obj2); //true// $obj3 = clone $obj1; //不能被克隆
新闻热点
疑难解答