現代php程式設計

weixin_34037977發表於2018-02-07
  • 自動載入__autolaod和spl_autoload_register()

    自動載入就是指如果找不到某個類如何處理的方式,具體可參見此文,可以說spl_autoload_register是更加高階,更加靈活的載入方式。

  • 名稱空間

    C++裡很早就引入了名稱空間來解決命名衝突,隨著php的工程量逐漸增多,在php5.3也引入了名稱空間的機制。有了自動載入和名稱空間之後,以此為基礎上才有了現在php社群的流行的composer包管理器。不得不說composer是個非常出色的包管理器,比nodejs的npm,和python的pip好多了。關於名稱空間可參考此文

  • 介面

    面向契約程式設計
  • trait

    公用的程式碼片段,組合模式,組合優於繼承的思想

  • 延遲繫結

    static和self的區別
  • 迭代器和生成器

  • 匿名函式和閉包

  • 日誌

    推薦使用monolog配合rsyslog,或者第三方日誌服務

  • 寫時複製 copy on write
$foo['love'] = 1;
$bar  = &$foo['love'];
$tipi = $foo;
$tipi['love'] = '2';
echo $foo['love'];//輸出2

$bar變數的引用操作,將$foo['love']汙染變成了引用,從而Zend沒有 對$tipi['love']的修改產生記憶體的複製分離。

相關文章