php7
古い assert()
関数に対する下位互換性のある機能強化が期待されます。期待により、運用コードでゼロコストのアサーションが可能になり、アサーションが失敗したときにカスタム例外をスローする機能が提供されます。 assert()
は、最初の引数がテスト用の式 string
または boolean
の比較である言語構造ではありません。
設定ディレクティブassert()
デフォルト値 | 可能な値 | |
1 | 1 \- コードを生成して実行する (開発モード) 0 \- コードを生成しますが、実行時にスキップします -1 \- コードを生成しません (運用モード) | |
0 | 1 \- アサーションが失敗した場合は提供された例外オブジェクトをスローし、例外が提供されなかった場合は新しい AssertionError オブジェクトをスローします。 0 \- 上記のように Throwable を使用または生成しますが、オブジェクトをスローするのではなく、そのオブジェクトに基づいて警告のみを生成します (PHP 5 の動作と互換性があります) |
PHP 5 では、評価対象の
string またはテスト対象の
ブール値 である必要があります。
PHP 7 では、実行される値と、アサーションが成功したか失敗したかを示すために使用される結果を返す任意の式も使用できます。
PHP 7 では、2 番目のパラメータは説明文字列ではなく
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...
推奨:
php ビデオ チュートリアル以上がPHP7 の期待値を適切に使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。