2012-04-08 24 views
0

文字通りこの文字列として解釈されるphpのマクロのような文字列の定義が必要ですが、defs.phpファイルではなく文字列が配置されている行とファイルを参照する必要があります...これはどのように定義しますか?

define ("REDIRECT_FROM"," (".`____FILE____`." line:".`____LINE____`.")"); 

redirectTo("login.php",REDIRECT_FROM); 

とつながる:

redirected from abc.php line: 59 

は私が明らかになったと思います。 (リダイレクトされたのは、もちろんredirectTo()の機能で実装されています)

ありがとう!

+2

なぜ定数である必要がありますか?あなたは単にそれを関数呼び出しにすることはできませんか? –

答えて

3

define()でこれを行うことはできません。マクロではなく定数を設定します。可能な解決策が機能し、バックトレース使用している

function called_from(){ 
    $trace = debug_backtrace(); 
    $item = $trace[0]; 
    return " ({$item['file']} line:{$item['line']})"; 
} 

をあなたはその後、呼び出します。

redirectTo("login.php", called_from()); 

また、単にあなたのredirectTo()関数にこのロジックを構築することができます。

例:http://codepad.org/CGUXWgAB

関連する問題