码迷,mamicode.com
首页 > Web开发 > 详细

20170722_php_单例模式

时间:2017-07-22 18:24:10      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:sel   self   输出   实例化   对象   ace   interface   类型   static   

 1 <?php
 2 
 3 class myClass{
 4     
 5     private static $obj = null;
 6 
 7     private function  __construc(){
 8 
 9     }
10 
11     public static function getInterface(){
12         if(self::$obj == null){
13             self::$obj = new self();
14         }
15 
16         return self::$obj;
17     }
18 
19     public function __toString(){
20         return ‘this is __toString‘;
21     }
22 }
23 
24 $obj = myClass::getInterface();
25 echo $obj;

myClass的构造函数是private类型的,所以无法在外部被实例化,新建一个静态变量obj,新建一个静态类getInterface,如果obj为空则实例化,然后返回obj.

在类的外部,可以直接调用类的静态方法,静态方法返回的是被实例化的myClass类,而myClass只被实例化了一次,在别的地方调用getInterface,不会再重新实例化myClass,至此实现了实例化.

__toString()是php的魔术方法,需要输出对象类型时,可以使用__toString()返回数据.

20170722_php_单例模式

标签:sel   self   输出   实例化   对象   ace   interface   类型   static   

原文地址:http://www.cnblogs.com/tiantian123/p/7221831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!