企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**1、什么是单例模式?**      从名字可以理解,确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。通俗理解(单例模式一般也就是强调类的静态调用,一个进程对一个类的多次调用只产生一个类对象) **2、单例模式有那些好处呢?** PHP应用主要用于数据库应用,因此会存在大量的数据库操作,使用单例模式可以避免大量的 new 操作消耗的资源。 单例模式是一种对于全局变量的改进 3、实例场景:    ~~~ <?php /* * PHP生成对象之设计模式—单例模式 * 用于保存基本信息的单例类 存储URL目录、文件路径等数据 * 1、Preferences对象可以被系统中中任何对象使用 * 2、Preferences对象不被存储在会被覆写的全局变量中 */ class Preferences{ private $props=array(); //保存例实例在此属性中 private static $instance; //构造函数声明为private,防止直接创建对象 private function __construct(){} //单例方法 public static function getInstance(){ if(empty(self::$instance)){ self::$instance=new Preferences(); } return self::$instance; } //设置属性和属性值 public function setProperty($key,$val){ $this->props[$key]=$val; } //读取值 public function getProperty($key){ return $this->props[$key]; } } //得到Preferences类的单例对象 $pref=Preferences::getInstance(); //设置一个属性 name 的值 为matt $pref->setProperty("name","matt"); //移除引用 unset($pref); //得到Preferences类的单例对象 $pref2=Preferences::getInstance(); //输出属性name 的属性值 该属性值未丢失 print $pref2->getProperty("name"); ~~~