Comment implémenter le mode singleton en PHP : Pour implémenter le mode singleton, vous devez vous assurer qu'une classe n'a qu'une seule instance et fournir un point d'accès global pour y accéder. Le modèle singleton ne crée pas de copie de l'instance, mais renvoie une référence à l'instance stockée dans la classe singleton.
Définition du modèle singleton :
(tutoriel recommandé : tutoriel php)
Assurez-vous qu'il n'y a qu'une seule instance d'une classe et fournissez-lui un point d'accès global. Il ne crée pas de copie de l'instance, mais renvoie une référence à l'instance stockée en interne dans la classe singleton.
Trois éléments du modèle singleton :
Nécessite une variable membre statique qui contient une instance unique de la classe.
Les constructeurs et les fonctions de clonage doivent être déclarés privés pour empêcher les programmes externes de créer ou de faire des copies de l'instance.
doit fournir une méthode statique publique pour accéder à cette instance, renvoyant ainsi une référence à l'instance unique.
Implémentation du code :
class Singleton { //创建静态私有的变量保存该类对象 static private $instance; //防止使用new直接创建对象 private function __construct(){} //防止使用clone克隆对象 private function __clone(){} static public function getInstance() { //判断$instance是否是Singleton的对象,不是则创建 if (!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; } public function test() { echo "我是一个单例模式"; } } $sing = Singleton::getInstance(); $sing->test(); $sing2 = new Singleton(); //Fatal error: Uncaught Error: Call to private Singleton::__construct() from invalid context in $sing3 = clone $sing; //Fatal error: Uncaught Error: Call to private Singleton::__clone() from context
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!