錯誤處理
error_reporting
設置錯誤級別;display_errors
控制腳本是否輸出錯誤;log_errors
和error_log
指令控制錯誤日誌;- PHP7將很多錯誤當做異常處理,但catch的是ERROR類,不是Exception;
異常處理
- 異常對象不能clone;
- 自定義Exception時最好調用parent::construct,來確認所有變量都正確初始化;
生成器
- 生成可遍歷的對象,用時生成,資源佔用少;
- yeild返回值,但不結束,保存執行狀態,直至下次調用;
- yeild無返回值,則返回null;
引用
- PHP中的引用意味着使用不同的名字訪問同一個變量,並不像C的指針;
- 如果在一個函數內部給一個聲明爲 global 的變量賦於一個引用,該引用只在函數內部可見。可以通過使用 $GLOBALS 數組避免這一點;
預定義變量
- 超全局變量:在全部作用域中始終可用的變量;
- GLOBAL、SERVER、GET、POST、COOKIE等;
預定義異常
- Exception
- ErrorException
預定義接口
- Traversable:檢測一個類是否可以使用foreach進行遍歷的接口,這個接口沒有任何方法,它的作用僅僅是作爲所有可遍歷類的基本接口;
- Iterator:可在內部迭代自己的外部迭代器或類的接口;
- IteratorAggregate:外部迭代器接口;
- ArrayAccess:提供像數組一樣訪問對象的能力的接口;
- Serializable:自定義序列化的接口;
- Closure:代表匿名函數的類,在過去被認爲是一個實現細節,但現在可以依賴它自帶的一些方法做一些事情;
- Generator:從generators返回的,不能通過new實例化;
上下文
- PHP 提供了多種上下文選項和參數,可用於所有的文件系統或數據流封裝協議。上下文(Context)由
stream_context_create()
創建。選項可通過stream_context_set_option()
設置,參數可通過stream_context_set_params()
設置