» home

今まで使ったことのなかったPHPのassert関数

何の気なしに

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がそのまま終了する。

ちょっとしたテストスクリプトで使えるかもしれない。

By: funaki | 2008年7月15日 | いじる | Trackback | Comments [RSS 2.0]

コメントはまだありません。 »

RSS feed for comments on this post. TrackBack URI

コメントはお気軽にどうぞ

↑top