Single-sample code and php design pattern in php design pattern
For your reference, the example of the php design mode Singleton mode is as follows:
<? Php/*** php design mode singleton mode */class Fruit {private static $ instanceMap = array (); // protected getter for singleton instances protected static function getSingleton ($ className) {// ensure the singleton mode and the if (! Isset (self ::$ instanceMap [$ className]) {$ object = new $ className; // Make sure this object inherit from Singleton if ($ object instanceof Fruit) {self:: $ instanceMap [$ className] = $ object; var_dump ($ object);} else {throw SingletonException ("Class '$ className' do not inherit from Singleton! ") ;}} Return self: $ instanceMap [$ className];} // protected constructor to prevent outside instantiation protected function _ construct () {}// denie cloning of singleton objects public final function _ clone () {trigger_error ('it is impossible to clone singleton ', E_USER_ERROR );}} class Apple extends Fruit {protected $ rndId; public function _ construct () {$ this-> rndId = rand ();} public function whatAmI () {echo 'I am a Apple ('. $ this-> rndId. ') <br/>';} public static function getInstance () {// echo get_class (); return Fruit: getSingleton (get_class ());}} class GreenApple extends Apple {public function whatAmI () {echo 'I am a GreenApple ('. $ this-> rndId. ') <br/>';} public static function getInstance () {return Fruit: getSingleton (get_class () ;}$ apple1 = Apple: getInstance (); // var_dump ($ apple1); $ apple2 = GreenApple: getInstance (); $ apple1-> whatAmI (); // shocould echo 'I am a Apple (some number) $ apple2-> whatAmI (); // shocould echo 'I am a GreenApple (some number) $ apple1 = Apple: getInstance (); $ apple2 = GreenApple :: getInstance (); // guaranteed Singleton mode $ apple1-> whatAmI (); // shocould echo 'I am a Apple (same number as above) $ apple2-> whatAmI (); // shocould echo 'I am a GreenApple (same number as above) // $ a = clone $ apple1; // this showould fail // $ B = clone $ apple2; // this showould fail
The above is all the content of this article. I hope it will help you learn php programming.