[PHP-users 7926] Re: 自分自身のファイル名取得

Naofumi Kondoh php-users@php.gr.jp
Wed, 05 Jun 2002 13:56:24 +0900


ソフト工房の近藤です。

Mashiki wrote:
> 
>  Mashikiです。
> 
> 便乗質問です。
> 
> >次のように、デバッグ文として入れるときに便利。
> >
> >if(dbg>=3)printf("%s.L%04d: hoge = $hoge <BR>",basename(__FILE__),__LINE__);
> 
>  共通関数の中でのエラー処理で、呼び出し元のファイル名と行番号が、
> 呼ばれた関数側で取得できると、かなり有効なログやエラーメッセージが
> 出力できるのですが、何かいい方法はありませんでしょうか?


我流ですが、呼出し元のファイルが1つだけの場合は、

    define(FNAM__, __FILE__);

などと適当な定数を必ず設定するようにしておくという
方法をとっています。

DB アクセスなど 重要な または デバッグポイントになり
そうな関数やクラスメソッドには、引数でファイル名と
行番号をいれています。

function hoge($arg1, 。。。。 $argn, $File="", $Line=0)
{
    if ($File) $File = basename($File);
     ......
    if(dbg>=3)printf("%s.L%04d → %s.L%04d:
         hoge = $hoge <BR>",
         $File, $Line, basename(__FILE__),__LINE__);
     .....
}

呼び出す時は、
hoge(......., __FILE__, __LINE__);
とする。
最後の2つの引数は、省略できるようにしています。

我流ですが、ご参考まで。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文        Email:  nkon@shonan.ne.jp 
http://www.SOFTKOUBOU.co.jp/      http://www.shonan.ne.jp/~nkon/
2002-06-20(木曜)夜 JPUG 業務アプリ分科会 セミナー/勉強会
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/