PHP7期望

期望是向後相容的增強到舊 assert() 函數。期望允許在生產代碼零成本的斷言,並提供在斷言失敗時拋出自定義異常的能力。assert() 不是一種語言構建體,其中第一個參數是一個運算式的比較字串或布爾用於測試。

配置指令assert()

指令 默認值 
可能的值
zend.assertions 1
  • 1 - 生成並執行代碼(開發模式)

  • 0 - 生成代碼,但它在運行時

  • -1 - 不生成代碼(生產模式)

assert.exception 0
  • 1 - 當斷言失敗時拋出,要麼拋出的異常,或者通過拋出一個新的 AssertionError 對象提供的對象,如果沒有提供異常

  • 0 - 使用或與上述生成的Throwable,但只能根據該對象的警告,而不是(與PHP 5相容的行為)把它拋出

參數

  • assertion - 斷言。在PHP 5中,這必須是要計算一個字串或要測試一個布爾值。 在PHP中7,這也可能是一個返回值的運算式,將執行和使用的結果,以指示斷言是成功還是失敗。

  • description - 一個可選的描述,如果斷言失敗,將包括失敗消息。

  • exception-在PHP7,第二個參數可以是一個 Throwable 對象,而不是一個描述字串,在這種情況下,這是如果斷言失敗和assert.exception配置指令啟用將拋出的對象。

返回值

如果斷言為假為FALSE,否則為TRUE。

示例

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Custom Error Message!'));
?>

這將在流覽器產生以下輸出 -

Fatal error: Uncaught CustomError: Custom Error Message! in...

上一篇: PHP7 CSPRNG 下一篇: PHP7 use語句