PHP 7 の例外
PHP 7 の例外
PHP 7 の例外は、下位互換性と古いassert() 関数の拡張のために使用されます。これにより、運用環境でゼロコストのアサーションが可能になり、カスタム例外やエラーをスローする機能が提供されます。
API の古いバージョンは、互換性の目的で引き続き維持されます。assert() は、最初のパラメーターを計算する文字列やテストするブール値だけでなく、式にすることができる言語構造になりました。
assert()の設定
設定項目 | デフォルト値 | オプション値 |
---|---|---|
zend.assertions | 1 |
|
assert.Exception | 0 |
|
- 。 PHP 5 では、実行用の文字列またはテスト用のブール値。 PHP 7 では、これは任意の値を返す式にすることができ、その結果はアサーションが成功したかどうかを示すために使用されます。
- description
- が失敗した場合、オプションの説明が失敗メッセージに含まれます。
例外
assertion
- PHP 7 では、2 番目のパラメーターは文字列ではなく Throwable オブジェクトにすることができます。これは、アサーションが失敗し、assert.Exception が有効な場合にスローされます。
Instance
Set zend.assertions to 0:
Instance
<?php ini_set('zend.assertions', 0); assert(true == false); echo 'Hi!'; ?>上記のプログラム実行出力は次のとおりです:
Hi!
Set zend.assertions to 1,設定されています1: インスタンス
<?php 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}が2行目でスローされました