[PHP-users 1483] assert() のすすめ (Re: echo() と print() の違いについて)
SAWADA Hodaka
php-users@php.gr.jp
Fri, 24 Aug 2001 13:13:03 +0900
At Fri, 24 Aug 2001 11:11:08 +0900,
Naofumi Kondoh wrote:
> > define("DEBUG",1);
> >
> > function debugprint($msg){
> > if (DEBUG) echo "debug:".$msg;
> > }
>
> PHP は マクロがないのでデバッグ文のある行番号を示す
> __FILE__, __LINE__ 定数をプログラムに明記しなければ
> ならないので、私は、次のスタイルです。
> # vi の map でワンタッチ挿入できるようにしてます。
>
> if(dbg>=3)printf("<font size=5 color=purple><B>%s.L%04d:
> $hoge </B></font><br>\n",basename(__FILE__),__LINE__);
みなさん、debug 表示にいろんな方法を使っておられますが、
PHP4 ならば assert() というものがあります。
http://www.php.net/manual/ja/function.assert.php
・php.ini や、assert_options() 等で、制御が可能。
・assertion を殺したときは、条件判断そのものがなくなるので、
実行速度的に有利。#source を見たわけじゃないですけど。
file, line, code が、コールバック関数に渡されるので、
近藤さんでも安心して使えます。(^^;;;)
簡単に試すならば、
<?php
assert_options (ASSERT_ACTIVE, 1);
assert ('1==0');
?>
で、結果を見てくださいまし。
1==0 という code は偽なので、assert が発動します。
p.s.
あと、echo, print 族に追加するなら、
致命的な message 表示には die() をよく使ってます。
--
=^^= HODA =^^= http://www.tail.gr.jp/~hoda/
澤田保隆@しっぽアルゴリズム情報研究所 mailto:hoda@tail.gr.jp