辛星和您一行解析PHP中的单例模式
辛星和您一起解析PHP中的单例模式
其实单例模式还是用的挺多的,要说到最经典的例子,可能就是操纵数据库的类了,它如果是单例的话,可以避免大量的new操作消耗资源,而如果系统中需要一个类来管理全局的信息,则把它用成单例也是很不错的,因为它是全局有效的,我们无需多次实例化。
下面是正确的调用方式示例:
<?phpclass Xin{ //保存该类的实例 private static $_instance; //不让外部调用该构造函数 private function __construct(){ echo "辛星加油"; } //用于获取实例,必须是静态的,否则外部无法调用 public static function get_instance(){ //如果该单例不存在,则创建它 if(!(self::$_instance instanceof self)){ self::$_instance = new self; } //返回它既可 return self::$_instance; } //不允许对象被克隆 public function __clone(){ trigger_error('Clone Denyed!',E_USER_ERROR); } //功能函数 public function xin(){ echo "调用Xin类的xin函数,辛星你好"; }}//正确的调用方式$xin = Xin::get_instance();$xin->xin();
它的输出,我想读者也能猜到了:
辛星加油调用Xin类的xin函数,辛星你好
如果我们要克隆对象的话,比如下面代码:
<?phpclass Xin{ //保存该类的实例 private static $_instance; //不让外部调用该构造函数 private function __construct(){ echo "辛星加油"; } //用于获取实例,必须是静态的,否则外部无法调用 public static function get_instance(){ //如果该单例不存在,则创建它 if(!(self::$_instance instanceof self)){ self::$_instance = new self; } //返回它既可 return self::$_instance; } //不允许对象被克隆 public function __clone(){ trigger_error('Clone Denyed!',E_USER_ERROR); } //功能函数 public function xin(){ echo "调用Xin类的xin函数,辛星你好"; }}//克隆的时候会报错的$xin = Xin::get_instance();$qian = clone $xin;
那么会报错信息如下:
辛星加油( ! ) Fatal error: Clone Denyed! in D:\MyApp\wamp\www\err.php on line 22Call Stack
好啦,,鉴于单例模式本身就简单,读者有什么不清楚的可以在下面留言,我会认真解答的。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Der Grund für den Fehler ist NameResolutionError(self.host,self,e)frome, ein Ausnahmetyp in der urllib3-Bibliothek. Der Grund für diesen Fehler ist, dass die DNS-Auflösung fehlgeschlagen ist, d. h. der Hostname oder die IP-Adresse Der Lösungsversuch konnte nicht gefunden werden. Dies kann daran liegen, dass die eingegebene URL-Adresse falsch ist oder der DNS-Server vorübergehend nicht verfügbar ist. So beheben Sie diesen Fehler Es gibt möglicherweise mehrere Möglichkeiten, diesen Fehler zu beheben: Überprüfen Sie, ob die eingegebene URL-Adresse korrekt ist und stellen Sie sicher, dass sie zugänglich ist. Stellen Sie sicher, dass der DNS-Server verfügbar ist. Sie können es mit dem Befehl „ping“ in der Befehlszeile versuchen Um zu testen, ob der DNS-Server verfügbar ist, versuchen Sie, über die IP-Adresse statt über den Hostnamen auf die Website zuzugreifen, wenn Sie sich hinter einem Proxy befinden

Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

Bevor wir die Verwendung von self in Python vorstellen, stellen wir zunächst die Klassen und Instanzen in Python vor. Wir wissen, dass Klassen und Instanzen abstrakte Vorlagen sein können vertreten durch eine Studentenklasse. Instanzen sind spezifische „Objekte“, die auf der Grundlage von Klassen erstellt werden. Jedes Objekt erbt dieselben Methoden von der Klasse, seine Daten können jedoch unterschiedlich sein. 1. Nehmen Sie die Klasse Student als Beispiel. In Python ist die Klasse wie folgt definiert: classStudent(object):pass(Object) gibt an, von welcher Klasse die Klasse erbt

In diesem Artikel lernen wir die Funktion enumerate() und den Zweck der Funktion „enumerate()“ in Python kennen. Was ist die Funktion enumerate()? Die Funktion enumerate() von Python akzeptiert eine Datensammlung als Parameter und gibt ein Aufzählungsobjekt zurück. Aufzählungsobjekte werden als Schlüssel-Wert-Paare zurückgegeben. Der Schlüssel ist der Index, der jedem Element entspricht, und der Wert sind die Elemente. Syntax enumerate(iterable,start) Parameter iterable – Die übergebene Datensammlung kann als Aufzählungsobjekt namens iterablestart zurückgegeben werden – Wie der Name schon sagt, wird der Startindex des Aufzählungsobjekts durch start definiert. wenn wir es ignorieren

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle. MySQL ist ein beliebtes relationales Datenbankverwaltungssystem. Wenn Entwickler MySQL verwenden, müssen sie häufig gespeicherte Prozeduren erstellen und verwalten. Die MySQL.proc-Tabelle ist eine sehr wichtige Systemtabelle. Sie speichert Informationen zu allen gespeicherten Prozeduren in der Datenbank, einschließlich des Namens, der Definition, der Parameter usw. der gespeicherten Prozeduren. In diesem Artikel erklären wir ausführlich die Rolle und Funktionalität der MySQL.proc-Tabelle

Verwendung und Funktion von Vue.Funktion verwenden Vue ist ein beliebtes Frontend-Framework, das viele nützliche Features und Funktionen bietet. Eine davon ist die Vue.use-Funktion, die es uns ermöglicht, Plugins in Vue-Anwendungen zu verwenden. In diesem Artikel werden die Verwendung und Funktion der Vue.use-Funktion vorgestellt und einige Codebeispiele bereitgestellt. Die grundlegende Verwendung der Vue.use-Funktion ist sehr einfach. Rufen Sie sie einfach auf, bevor Vue instanziiert wird, und übergeben Sie das Plugin, das Sie verwenden möchten, als Parameter. Hier ist ein einfaches Beispiel: //Plugin vorstellen und verwenden

Mit der Funktion „clearstatcache()“ wird der Dateistatus-Cache geleert. PHP speichert die von den folgenden Funktionen zurückgegebenen Informationen zwischen: −stat()lstat()file_exists()is_writable()is_readable()is_executable()is_file()is_dir()filegroup()fileowner()filesize()filetype()fileperms() Was zu tun Um eine bessere Leistung zu erzielen. Syntax voidclearstatecache() Parameter NA Rückgabewert clearstatcache(
