标签: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()返回数据.
标签:sel self 输出 实例化 对象 ace interface 类型 static
原文地址:http://www.cnblogs.com/tiantian123/p/7221831.html