PHP 7 の例外

PHP 7 の例外は、下位互換性と古いassert() 関数の拡張のために使用されます。これにより、運用環境でゼロコストのアサーションが可能になり、カスタム例外やエラーをスローする機能が提供されます。

API の古いバージョンは、互換性の目的で引き続き維持されます。assert() は、最初のパラメーターを計算する文字列やテストするブール値だけでなく、式にすることができる言語構造になりました。


assert() は、

QQ截图20161116112609.png

パラメータ

  • assertion
  • アサーションを設定します。 PHP 5 では、実行用の文字列またはテスト用のブール値。 PHP 7 では、これは任意の値を返す式にすることができ、その結果はアサーションが成功したかどうかを示すために使用されます。

  • description
  • assertionが失敗した場合、オプションの説明が失敗メッセージに含まれます。

  • 例外
  • PHP 7 では、2 番目のパラメーターは文字列ではなく Throwable オブジェクトにすることができます。これは、アサーションが失敗し、assert.Exception が有効な場合にスローされます。

インスタンス

zend.assertions を 0 に設定します:

インスタンス

<?php
ini_set('zend.assertions', 0);

assert(true == false);
echo 'Hi!';
?>

上記のプログラム実行出力は次のとおりです:

Hi!

zend.assertions を 1 に設定し、assert.Exception を 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}
  thrown in - on line 2
学び続ける
||
<?php ini_set('zend.assertions', 0); assert(true == false); echo 'Hi!'; ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜