[php学习]单例模式
/** 2.Singleton */ class Singleton{ private static $instance = null; public static function getInstance(){ if (!isset(self::$instance)){ $c = __CLASS__; self::$instance = new $c; } return self::$instance; } public function eventResult($id){ return $id; } protected function __construct() { } private function __clone() { } private function __wakeup() { } } class SingletonChild extends Singleton { } $obj = Singleton::getInstance(); var_dump($obj === Singleton::getInstance()); $anotherObj = SingletonChild::getInstance(); var_dump($anotherObj === Singleton::getInstance()); var_dump($anotherObj === SingletonChild::getInstance()); $objSingle = Singleton::getInstance(); $result = $objSingle->eventResult(100); print_r($result);
注意的是对于:__construct,__clone,__wakeup 的修饰符设定防止被实例破坏单例。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。