PHP 7 例外
PHP 7 の例外は、下位互換性と旧 assert() 関数の拡張のために使用されます。本番環境でゼロコストのアサーションを実現し、カスタム例外やエラーをスローする機能を提供します。
旧バージョンの API は互換性の目的で引き続きメンテナンスされます。assert() は現在言語構造であり、最初のパラメータとして、評価される string やテストされる boolean だけでなく、式を受け取ることができます。
assert() 設定
| 設定項目 | デフォルト値 | オプション値 |
|---|---|---|
| zend.assertions | 1 |
|
| assert.exception | 0 |
|
パラメータ
- assertion
-
アサーション。PHP 5 では、実行する文字列またはテストするブール値です。PHP 7 では、任意の値を返す式にすることができ、その実行結果がアサーションが成功したかどうかを示すために使用されます。
- description
-
もし
assertion失敗した場合、オプション description が失敗情報に含まれます。 - exception
-
PHP 7 では、2 番目のパラメータは次のものにすることができます:Throwableオブジェクトであり、文字列ではありません。アサーションが失敗し、assert.exception が有効になっている場合、そのオブジェクトがスローされます。
例
zend.assertions を 0 に設定します:
例
ini_set('zend.assertions', 0);
assert(true == false);
echo 'Hi!';
?>
上記のプログラムの実行出力結果は次のとおりです:
Hi!
zend.assertions を 1 に、assert.exception を 1 に設定します:
例
ini_set('zend.assertions', 1);
ini_set('assert.exception', 1);
assert(true == false);
echo 'Hi!';
?>
上記のプログラムの実行出力結果は次のとおりです:
Fatal error: Uncaught AssertionError: assert(true == false) in -:2
Stack trace:
#0 -(2): assert(false, 'assert(true == ...')
#1 {main}
thrown in - on line 2
その他の拡張機能
PHP 7 新機能