Heim  >  Artikel  >  Backend-Entwicklung  >  Objektorientierte PHP-Entwicklung – Singleton-Modus

Objektorientierte PHP-Entwicklung – Singleton-Modus

黄舟
黄舟Original
2016-12-29 11:07:441627Durchsuche

Die globalen Variablen von HP bieten große Flexibilität bei der Programmierung, aber die uneingeschränkte Natur globaler Variablen birgt auch große versteckte Gefahren. Das Singleton-Muster kann ein guter Ersatz für globale Variablen sein.

Angenommen, es gibt eine Blume, jeder, der sie sieht, wird die Blume gießen und sie dann schätzen.

class flower{

	function __construct(){
		echo date('Y-m-d H:i:s').'浇了花';
	}
	
	public function look(){
		return '一朵美丽的花';
	}

}

$a=new flower();//将输出:2013-01-08 09:37:54浇了花
echo $a->look();//将输出:一朵美丽的花
$b=new flower();//将输出:2013-01-08 09:37:54浇了花
echo $b->look();//将输出:一朵美丽的

Es ist ersichtlich, dass die Blumen früher oder später ertrinken werden, wenn es immer mehr Menschen gibt. Was wir brauchen, ist, dass die erste Person, die die Blumen sieht, die Blumen gießt. Andere Menschen müssen die Blumen nicht gießen.

class flower{  
      
    private static $instance;  
  
    private function __construct(){  
        echo date('Y-m-d H:i:s').'浇了花';  
    }  
      
    public static function getInstance(){  
        if(empty(self::$instance)){  
            self::$instance=new self();  
        }  
        return self::$instance;  
    }  
      
    public function look(){  
        return '一朵美丽的花';  
    }  
  
}  
  
$a=flower::getInstance();//将输出:2013-01-08 09:52:43浇了花  
echo $a->look();//将输出:一朵美丽的花  
  
$b=flower::getInstance();//不会输出  
echo $b->look();//将输出:一朵美丽的

Der Singleton-Modus eignet sich für Umgebungen, in denen nur dieselbe Instanz abgerufen werden muss, z. B. MySQL-Datenbankverbindungen und andere Vorgänge.

Das Obige ist der Inhalt der objektorientierten PHP-Entwicklung – Singleton-Modus. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn