php能實作單例,其實作一個單例的方法:1、申請一個私有的靜態成員變數來保存該類別的唯一實例;2、宣告私有的建構方法,防止類別外部建立物件;3、宣告一個靜態公用方法,供外部取得唯一實例。
本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦
PHP如何實作單一範例
申請一個私有的靜態成員變數來保存該類別的唯一實例
聲明私有的建構方法,防止類別外部建立對象
宣告一個靜態公用方法,供外部取得唯一實例
#這三步驟走完,就是一個單例了,但是這個單例子是不安全的,想要這個單例安全,還需以下兩步驟(如有不完善還請補充)
聲明私有的複製方法,防止物件被複製
重寫__sleep方法,將傳回置空,防止序列化反序列化獲得新的物件
<?php /** * 单列模式(防止对象克隆、对象序列化反序列化) * Created by PhpStorm. * User: Jeaforea * Date: 2019/3/14 * Time: 17:56 */ namespace Kanshenmekan\Buzhunkan\Zaikandasini; class SetSingleton{ private static $new; //申请一个私有的静态成员变量来保存该类的唯一实例 private function __construct() {} //声明私有的构造方法,防止类外部创建对象 public static function instance () { //声明一个静态公共方法,供外部获取唯一实例 if (!(self::$new instanceof self)) { self::$new = new self; } return self::$new; } private function __clone() {} //声明私有的克隆方法,防止对象被克隆 public function __sleep() { //重写__sleep方法,将返回置空,防止序列化反序列化获得新的对象 return []; } }
【推薦學習:PHP影片教學】
以上是php 能實作單例嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!