Heim > Artikel > Backend-Entwicklung > PHP-Singleton-Modus (Verantwortungsmodus)
Einfach ausgedrückt ist ein Objekt (bevor Sie Designmuster lernen müssen) nur für eine bestimmte Aufgabe verantwortlich
Einzelne Instanzklasse:
1 Es muss als privat markiert werden (Zugriffskontrolle: um zu verhindern, dass externer Code den neuen Operator zum Erstellen von Objekten verwendet). Die Singleton-Klasse kann nicht in anderen Klassen instanziiert werden und kann nur von ihr selbst instanziiert werden. Verfügen Sie über eine gespeicherte Klasse. Statische Mitgliedsvariablen der Instanz
3. Verfügen Sie über eine öffentliche statische Methode, um auf diese Instanz zuzugreifen (die Methode getInstance() wird üblicherweise zum Instanziieren einer Singleton-Klasse verwendet, und der Operator „instanceof“ kann dazu verwendet werden Ermitteln Sie, ob die Klasse instanziiert wurde) )
Außerdem muss die Methode __clone() erstellt werden, um zu verhindern, dass das Objekt kopiert (geklont) wird
<?php /** * Created by PhpStorm. * User: * Date: 2017/1/2 * Time: 下午3:32 */ class Single { //保存实例的私有静态实例变量 private static $instance; //private标记的构造方法,方式通过其他方式实例化 private function __construct() { echo "this is construct function"; } //创建clone方法防止被克隆 public function __clone() { trigger_error("Clone is not allowed ", E_USER_ERROR); } //单例方法,用户访问实例的公共静态方法 public static function shareInstance() { //instanceof:判断instance是不是self的实例或者子类 if (!(self::$instance instanceof self)){ self::$instance = new self(); } return self::$instance; } }Anhang
Funktionserstellung Fehlermeldung auf Benutzerebene. Die Funktion
trigger_error()
trigger_error()
trigger_error(errormsg,errortype);
参数 | 描述 |
---|---|
errormsg | 必需。规定错误消息。最大长度 1024 字节。 |
errortype | 可选。规定错误类型。可能的值:E_USER_ERRORE_USER_WARNINGE_USER_NOTICE(默认) |
Einfach ausgedrückt ist ein Objekt (Sie müssen objektorientiertes Denken verstehen, bevor Sie Designmuster lernen) nur für eine bestimmte Aufgabe verantwortlich
Singleton-Klasse:
1. Der Konstruktor muss als privat markiert werden (Zugriffskontrolle: Verhindern Sie, dass externer Code den neuen Operator zum Erstellen von Objekten verwendet. Die Singleton-Klasse kann nicht nur in anderen Klassen instanziiert werden Von selbst instanziiert;
2. Eine statische Mitgliedsvariable haben, die eine Instanz der Klasse enthält
3. Eine öffentliche statische Methode für den Zugriff auf diese Instanz haben (üblicherweise wird die Methode getInstance() verwendet). (Beispiel: Singleton-Klasse, Sie können erkennen, ob die Klasse durch den Instanzenoperator instanziiert wurde)
Darüber hinaus müssen Sie eine __clone()-Methode erstellen, um zu verhindern, dass das Objekt kopiert (geklont) wird
<?php /** * Created by PhpStorm. * User: * Date: 2017/1/2 * Time: 下午3:32 */ class Single { //保存实例的私有静态实例变量 private static $instance; //private标记的构造方法,方式通过其他方式实例化 private function __construct() { echo "this is construct function"; } //创建clone方法防止被克隆 public function __clone() { trigger_error("Clone is not allowed ", E_USER_ERROR); } //单例方法,用户访问实例的公共静态方法 public static function shareInstance() { //instanceof:判断instance是不是self的实例或者子类 if (!(self::$instance instanceof self)){ self::$instance = new self(); } return self::$instance; } }Angehängte
-Funktion erstellt Fehlermeldungen auf Benutzerebene. Die Funktion
trigger_error()
trigger_error()
trigger_error(errormsg,errortype);
参数 | 描述 |
---|---|
errormsg | 必需。规定错误消息。最大长度 1024 字节。 |
errortype | 可选。规定错误类型。可能的值:E_USER_ERRORE_USER_WARNINGE_USER_NOTICE(默认) |
Weitere Artikel zum Singleton-Modus (Verantwortungsmodus) von PHP finden Sie auf der chinesischen PHP-Website!