PHP 单例模式代码片段
1 <?php 2 3 error_reporting(E_ALL | E_STRICT); 4 5 class single{ 6 7 public $hash; 8 9 static protected $ins = null; 10 11 final protected function __construct(){ //final 能被继承,不能被重写(防止子类重写构造方法) 12 $this->hash = mt_rand(1,9999); 13 } 14 15 static public function getInstance(){ 16 if(self::$ins instanceof self){ //instanceof 判断某个对象是不是某个类的实例 17 return self::$ins; 18 } 19 self::$ins = new self(); 20 return self::$ins; 21 } 22 } 23 24 $s1 = single::getInstance(); 25 $s2 = single::getInstance(); 26 27 var_dump($s1); 28 var_dump($s2); 29 30 //son类继承single类 31 class son extends single{ 32 } 33 34 $s1 = son::getInstance(); 35 $s2 = son::getInstance(); 36 37 var_dump($s1); 38 var_dump($s2);
页面输出
object(single)[1] public ‘hash‘ => int 9762 object(single)[1] public ‘hash‘ => int 9762 object(single)[1] public ‘hash‘ => int 9762 object(single)[1] public ‘hash‘ => int 9762
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。