この記事では主に PHP デザイン パターンのシングルトン モードのデモを共有し、PHP シングルトン モードの学習に役立つことを願っています。
<?php/** * 设计模式之单例模式 * $_instance必须声明为静态的私有变量 * 构造函数和析构函数必须声明为私有,防止外部程序new * 类从而失去单例模式的意义 * getInstance()方法必须设置为公有的,必须调用此方法 * 以返回实例的一个引用 * ::操作符只能访问静态变量和静态函数 * new对象都会消耗内存 * 使用场景:最常用的地方是数据库连接。 * 使用单例模式生成一个对象后, * 该对象可以被其它众多对象所使用。 */class Example{//保存例实例在此属性中 private static $_instance;//构造函数声明为private,防止直接创建对象 public function __construct() { //初始的方法 }//单例方法 public static function getInstance() { if(!isset(self::$_instance)) { $c=__CLASS__; self::$_instance=new $c; } return self::$_instance; } function test() { echo("test"); } }// 这个写法会出错,因为构造方法被声明为private//$test = new Example;// 下面将得到Example类的单例对象$test = Example::getInstance();$test->test();?>
<?php/** * 设计模式之单例模式 * $_instance必须声明为静态的私有变量 * 构造函数和析构函数必须声明为私有,防止外部程序new * 类从而失去单例模式的意义 * getInstance()方法必须设置为公有的,必须调用此方法 * 以返回实例的一个引用 * ::操作符只能访问静态变量和静态函数 * new对象都会消耗内存 * 使用场景:最常用的地方是数据库连接。 * 使用单例模式生成一个对象后, * 该对象可以被其它众多对象所使用。 */class Example{//保存例实例在此属性中 private static $_instance;//构造函数声明为private,防止直接创建对象 public function __construct() { //初始的方法 }//单例方法 public static function getInstance() { if(!isset(self::$_instance)) { $c=__CLASS__; self::$_instance=new $c; } return self::$_instance; } function test() { echo("test"); } }// 这个写法会出错,因为构造方法被声明为private//$test = new Example;// 下面将得到Example类的单例对象$test = Example::getInstance();$test->test();?>
関連する推奨事項:
PHP シングルトン モードとは何ですか?シングルトンモードの使い方を詳しく解説
以上がPHPシングルトンモードデモの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。