❶ php 單例模式 不明白$ins 是什麼意思 沒理解了在單例中是怎麼發生的作用
單例的作用是保證在類被調用的時候只被實例化一次
並且每次調用的都是該被實例化的類
作用可以思考,一個資料庫鏈接,在一次訪問中只需要一個資料庫鏈接,並不應該產生多個資料庫鏈接
實現的方式是通過聲明一個靜態變數,用來存儲唯一的實例化對象
類被調用的方式不是童工new的實例化調用,為了保證不在外部被實例化,所以需要將__construct()實例化函數設置為私有或者子類繼承,通過統一的調用介面調用,在你的例子裡面就是getlns
該函數中判斷了靜態變數是否是滿足自身的介面設定,不滿足則實例化自己
你的代碼在return $this->data[$key];這句應該是錯誤的
整個getlns應該改為如下
public static function getIns(){
if(!self::$ins instanceof self ){
self::$ins = new self():
}
return self::$ins;
}
你估計是寫錯了函數,你可以發現你的getlns中沒喲$key變數,但內部卻調用了,所以你應該再檢查下你寫的代碼