Php7-expectations

提供:Dev Guides
移動先:案内検索

PHP 7-期待

  • 期待*は、古いassert()関数に対する後方互換性のある拡張機能です。 期待により、実稼働コードでゼロコストのアサーションが可能になり、アサーションが失敗したときにカスタム例外をスローする機能が提供されます。 assert()は言語構成体になりました。最初のパラメーターは、テスト対象の文字列またはブール値と比較した式です。

assert()の設定ディレクティブ

Directive Default value Possible values
*zend.assertions * 1
  • 1* − generate and execute code (development mode)

    *0* -コードを生成しますが、実行時にジャンプします
    *-1* -コードを生成しません(本番モード)
*assert.exception * 0
  • 1 − throw, when the assertion fails, either by throwing the object provided as the exception or by throwing a new AssertionError* object if exception was not provided.

    *0* -上記のようにThrowableを使用または生成しますが、スローするのではなく、そのオブジェクトに基づいた警告のみを生成します(PHP 5の動作と互換性があります)

パラメーター

  • assertion -アサーション。 PHP 5では、これは評価される文字列またはテストされるブール値のいずれかでなければなりません。 PHP 7では、これは実行される値を返す任意の式でもあり、結果はアサーションが成功したか失敗したかを示すために使用されます。
  • description -アサーションが失敗した場合、失敗メッセージに含まれるオプションの説明。
  • exception -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...