2016-05-09 5 views
0

変数クラスを作成しようとしているので、変数に動的に名前を付けることができます。私はコードにundeclared variable at line xを持っていました。 宣言する必要なしに関数に__LINE__変数を渡す

function ($varname, $line = 0) { 
    // Example 
    echo 'unknwon variable found at line '.$line; 
} 

しかし、私は、関数の line = 0を削除し、代わりに同じように関数を呼び出すことがなくてもそれに行を与えることができると思った:私はそうのように呼び出される関数を作るために管理

exampleFunction('Name', __LINE__); 

、代わりに好きそれを呼び出す:

exampleFunction('Name'); 

そして__LINE__変数が代わりにそれを含めることが必要で、それに渡されます。それはまた、エラーをチャッキング、うまくいかなかったけど

exampleFunction($varname, __LINE__) { 
    // Executed code. 
} 

: - 私はそうのような見た目と呼ばれていた機能を作ってみました。

+0

'関数exampleFunction($のVARNAME、$ライン= __LINE__){'それをおそらくあなたが望むものではありません –

+0

'エラーをチャッキングします.'何のエラー? – Vincent

+0

私はそれを試みましたが、それは私が望んでいたものではありません。関数が呼び出された場所を見たいのですが、ありがとう:) @ MarkBaker – Jek

答えて

0

exampleFunctiondebug_backtraceメソッドを使用して、発信者情報を回線で取得することができます。

http://php.net/manual/tr/function.debug-backtrace.php

出力(php.netからコピーされた)実施例

<?php 
// /tmp/a.php dosyası 

function a_test($str) 
{ 
    echo "\nHi: $str"; 
    var_dump(debug_backtrace()); 
} 

a_test('friend'); 
?> 

<?php 
// /tmp/b.php dosyası 
include_once '/tmp/a.php'; 
?> 

Hi: friend 
array(2) { 
[0]=> 
array(4) { 
    ["file"] => string(10) "/tmp/a.php" 
    ["line"] => int(10) 
    ["function"] => string(6) "a_test" 
    ["args"]=> 
    array(1) { 
     [0] => &string(6) "friend" 
    } 
} 
[1]=> 
array(4) { 
    ["file"] => string(10) "/tmp/b.php" 
    ["line"] => int(2) 
    ["args"] => 
    array(1) { 
     [0] => string(10) "/tmp/a.php" 
    } 
    ["function"] => string(12) "include_once" 
    } 
} 
関連する問題