private function __clone(){ } function sayHi(){ return The Class is saying hi to u } } echo Stat::getInstance()- sayHi(); class Stat{ static $instance = NULL; static function getInstance(){ if(self::$instance == NULL){ self::$instance = new Stat(); } return self::$instance; } private function __construct(){ }
private function __clone(){ } function sayHi(){ return The Class is saying hi to u } } echo Stat::getInstance()- sayHi();但,PHP是一种解释型的语言,在这里用单例好像看不出实际的用处,一旦整个页面执行完,变量也就消失了。static function getInstance(){ if(self::$instance == NULL){ self::$instance = new Stat(); //这里随着页面的重载会再次执行 } return self::$instance; } static function getInstance(){ if(self::$instance == NULL){ self::$instance = new Stat(); //这里随着页面的重载会再次执行 } return self::$instance; }我接触PHP时间不长,以上写出来的只是在C#与PHP二种不同语言环境下对单例模式的认知,也许这个例子只是为了说明模式可以用很多种语言来实现,但并不意味着在各种语言环境下都能真正起作用。asp.net中的单例是在整个应用程序域唯一。PHP中的单例只在整个页面周期内唯一html教程