Maison développement back-end tutoriel php 辛星和您一行解析PHP中的单例模式

辛星和您一行解析PHP中的单例模式

Jun 13, 2016 pm 12:03 PM
function quot self

辛星和您一起解析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(&#39;Clone Denyed!&#39;,E_USER_ERROR);	}	//功能函数	public  function xin(){		echo "调用Xin类的xin函数,辛星你好";	}}//正确的调用方式$xin = Xin::get_instance();$xin->xin();
Copier après la connexion

它的输出,我想读者也能猜到了:

辛星加油调用Xin类的xin函数,辛星你好
Copier après la connexion

如果我们要克隆对象的话,比如下面代码:

<?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(&#39;Clone Denyed!&#39;,E_USER_ERROR);	}	//功能函数	public  function xin(){		echo "调用Xin类的xin函数,辛星你好";	}}//克隆的时候会报错的$xin = Xin::get_instance();$qian = clone $xin;
Copier après la connexion

那么会报错信息如下:

辛星加油( ! ) Fatal error: Clone Denyed! in D:\MyApp\wamp\www\err.php on line 22Call Stack
Copier après la connexion

好啦,,鉴于单例模式本身就简单,读者有什么不清楚的可以在下面留言,我会认真解答的。



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Mar 01, 2024 pm 01:20 PM

La raison de l'erreur est NameResolutionError(self.host,self,e)frome, qui est un type d'exception dans la bibliothèque urllib3. La raison de cette erreur est que la résolution DNS a échoué, c'est-à-dire le nom d'hôte ou l'adresse IP qui était. La tentative de résolution n'a pas pu être trouvée. Cela peut être dû au fait que l'adresse URL saisie est incorrecte ou que le serveur DNS est temporairement indisponible. Comment résoudre cette erreur Il peut y avoir plusieurs façons de résoudre cette erreur : Vérifiez si l'adresse URL saisie est correcte et assurez-vous qu'elle est accessible Assurez-vous que le serveur DNS est disponible, vous pouvez essayer d'utiliser la commande "ping" dans la ligne de commande pour tester si le serveur DNS est disponible Essayez d'accéder au site Web en utilisant l'adresse IP au lieu du nom d'hôte si vous êtes derrière un proxy

Que signifie fonction ? Que signifie fonction ? Aug 04, 2023 am 10:33 AM

Fonction signifie fonction. Il s'agit d'un bloc de code réutilisable avec des fonctions spécifiques. C'est l'un des composants de base d'un programme. Il peut accepter des paramètres d'entrée, effectuer des opérations spécifiques et renvoyer des résultats. code pour améliorer la réutilisabilité et la maintenabilité du code.

Comment s'utiliser soi-même en Python Comment s'utiliser soi-même en Python May 17, 2023 pm 10:40 PM

Avant d'introduire l'utilisation de self en Python, introduisons d'abord les classes et les instances en Python. Nous savons que les concepts les plus importants de l'orientation objet sont les classes et les instances. Les classes sont des modèles abstraits, comme les étudiants. représenté par une classe d’étudiants. Les instances sont des « objets » spécifiques créés à partir de classes. Chaque objet hérite des mêmes méthodes de la classe, mais ses données peuvent être différentes. 1. Prenons l'exemple de la classe Student. En Python, la classe est définie comme suit : classStudent(object):pass(Object) indique de quelle classe la classe hérite.

Quel est le but de la fonction « enumerate() » en Python ? Quel est le but de la fonction « enumerate() » en Python ? Sep 01, 2023 am 11:29 AM

Dans cet article, nous découvrirons la fonction enumerate() et le but de la fonction « enumerate() » en Python. Qu'est-ce que la fonction enumerate() ? La fonction enumerate() de Python accepte une collection de données comme paramètre et renvoie un objet d'énumération. Les objets d'énumération sont renvoyés sous forme de paires clé-valeur. La clé est l'index correspondant à chaque élément, et la valeur est les éléments. Syntaxe enumerate(iterable,start) Paramètres iterable - Les données transmises dans la collection peuvent être renvoyées sous forme d'objet d'énumération, appelé iterablestart - Comme son nom l'indique, l'index de départ de l'objet d'énumération est défini par start. si nous ignorons

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

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

Explication détaillée du rôle et de la fonction de la table MySQL.proc Explication détaillée du rôle et de la fonction de la table MySQL.proc Mar 16, 2024 am 09:03 AM

Explication détaillée du rôle et de la fonction de la table MySQL.proc MySQL est un système de gestion de bases de données relationnelles populaire. Lorsque les développeurs utilisent MySQL, ils impliquent souvent la création et la gestion de procédures stockées (StoredProcedure). La table MySQL.proc est une table système très importante. Elle stocke les informations relatives à toutes les procédures stockées dans la base de données, y compris le nom, la définition, les paramètres, etc. Dans cet article, nous expliquerons en détail le rôle et les fonctionnalités de la table MySQL.proc

L'utilisation et la fonction de la fonction Vue.use L'utilisation et la fonction de la fonction Vue.use Jul 24, 2023 pm 06:09 PM

Utilisation et fonction de Vue.use Function Vue est un framework frontal populaire qui fournit de nombreuses fonctionnalités et fonctions utiles. L'une d'elles est la fonction Vue.use, qui nous permet d'utiliser des plugins dans les applications Vue. Cet article présentera l'utilisation et la fonction de la fonction Vue.use et fournira quelques exemples de code. L'utilisation de base de la fonction Vue.use est très simple, il suffit de l'appeler avant que Vue ne soit instanciée, en passant le plugin que vous souhaitez utiliser comme paramètre. Voici un exemple simple : //Introduire et utiliser le plug-in

A quoi sert la fonction js A quoi sert la fonction js Oct 07, 2023 am 11:25 AM

L'utilisation de la fonction js est : 1. Déclarer la fonction ; 2. Appeler la fonction ; 3. Paramètres de la fonction ; 5. Fonction anonyme ; 7. Portée de la fonction ;

See all articles