何の気なしに
function assert(
とvimで書いたらassertの文字の色が変わった(PHPのネイティブ関数は色分けされる)のであれ?と思い、調べてみたらあった。
simpletestについてくるassertTrue()は使ったことがあったが、純正assertは初めて。まだまだ使ったことのない関数があるものだ。。
PHP: assert - Manual
C言語のassertとは違って引数に文字列を渡すことで便利な動作を期待できる。
assert("strlen($str) == 10");
デフォルトだと、引数の文字列をevalした結果がfalseだとWarningが出る。
assert(strlen($str) == 10);
これでも普通に動く。
assert_options(ASSERT_ACTIVE, 0);
とするとassertは何もしなくなる。このときassertの引数を文字列で渡しているおかげで、オーバーヘッドが少ない、とマニュアルに書いてある。どういう意味かな、と試してみた。
assert(sleep(10));
だとASSERT_ACTIVEに関わらずsleepは実行されるが(よく考えてみればPHPがシーケンシャルに実行される以上当然か)、
assert("sleep(10)");
ならsleepは実行されずにassertがそのまま終了する。
ちょっとしたテストスクリプトで使えるかもしれない。

今まで使ったことのなかったPHPのassert関数
コメントはまだありません。
»
コメントはお気軽にどうぞ



