class CI_Base {private static $instance;public function CI_Base(){self::$instance =& $this;}public static function &get_instance(){return self::$instance;}}function &get_instance(){return CI_Base::get_instance();}
self::$instance =& $this;
請教一下 這句是 什麼意思 ?
回複討論(解決方案)
請教整個類是什麼意思
四不像的寫法!
沒有必要探討吧
我見CI架構的一個開源案例 有這樣的寫法
那就放棄你手中的代碼!
使用類名作為類的建構函式,是php4的寫法。雖然目前php5也支援,但不保證以後也支援
php5中對象均以引用傳遞,聲明為引用是多此一舉,在特定的場合中還會報錯
這段代碼本意是套用單例模式
但又不符合單例模式的規則
本來 CI_Base::get_instance(); 應返回一個 CI_Base 類的執行個體,多次執行返回的都是同一個執行個體
但你的代碼卻要 先 new CI_Base 後 CI_Base::get_instance() 才生效
那再次 new CI_Base 不就發生衝突了嗎?
這樣的代碼,只會引導你進入歧途
那就放棄你手中的代碼!
使用類名作為類的建構函式,是php4的寫法。雖然目前php5也支援,但不保證以後也支援
php5中對象均以引用傳遞,聲明為引用是多此一舉,在特定的場合中還會報錯
這段代碼本意是套用單例模式
但又不符合單例模式的規則
本來 CI_Base::get_instance(); 應返回一個 CI_Base 類的執行個體,多次執行返回的都是同一個執行個體
但你的代碼卻要 先 new CI_Base 後 CI_Base::get_instance() 才生效
那再次 new CI_Base 不就發生衝突了嗎?
這樣的代碼,只會引導你進入歧途
謝謝 我明白了 結貼給分