利用好PHP5 3的新特性,實現單例模式

2021-06-20 02:00:03 字數 667 閱讀 2345

5.3以前也可實現,但**較繁瑣, 如下:

class morder extends smodel

/*** 獲取本類單例的方法,公開

** @return morder

*/public static function instance()

$class = __class__;

self::$handle = new $class();

return self::$handle;

}//otherthing

5.3增加延遲靜態繫結(這個詞真彆扭)

**實現如下

class smodel

$class = get_called_class();

static::$handle = new $class();

return static::$handle;

}//父類something

class mgoods extends smodel

protected static $handle; //單例句柄

protected function __construct()

//otherthing

通過修改,子類的實現**減少一部分,轉由父類實現

實話說,仍很麻煩,如果php自己實現singleton就好了.

PHP5 3新特性之命名空間

命名空間 namespaces php5.3最大的新功能 完全支援名字空間特徵 大部分的功能的執行在編譯時 簡化命名慣例 1 更清晰的 不使用 namespaces 2 使用 namespaces 3 乙個檔案中多個名字空間 namespace lib class mysql class sqlit...

php5 3新特性之延遲靜態繫結

基於php版本 5.3.5 php5.3 以後引入了延遲靜態繫結 static 關鍵字 類似於 self 關鍵字 但它指向的是被呼叫的類 document 而不是包含類 domainobject static 和 self 的區別 主要的作用就是,彌補了原先的不足,原先子類可以用parent找到父類...

php5 3 底層變數的實現

這就是結構體 struct zval struct type欄位的值為以下常量 列舉的常量 is null,is bool,is long,is double is string,is array,is object is resource php中的乙個變數,就是底層虛擬機器用乙個結構體來描述的 ...