2011-07-03 8 views
4
function backtrace() { 
    var_dump(debug_backtrace()); 
} 


function echosth($what = 'default text') { 
    echo $what; 
    backtrace(); 
} 

echosth('another text'); //argument is shown 
         // ["args"]=> array(1) {[0]=>&string(12) "another text"} 
echosth(); //it appears as function has none arguments ["args"]=>array(0) {} 

親機能のデフォルト値に到達する方法はありますか?リフレクションPHP反射クラスのgetDefaultValueデフォルトの関数引数をバックトレースする方法は?

http://php.net/manual/en/reflectionparameter.getdefaultvalue.php

答えて

2

function foo($test, $bar = 'baz') 
{ 
    echo $test . $bar; 
} 

$function = new ReflectionFunction('foo'); 

foreach ($function->getParameters() as $param) { 
    echo 'Name: ' . $param->getName() . PHP_EOL; 
    if ($param->isOptional()) { 
     echo 'Default value: ' . $param->getDefaultValue() . PHP_EOL; 
    } 
    echo PHP_EOL; 
} 

debug_backtraceについて知っているので、呼び出し元の関数の名前を取得して、そのループを通して実行できるはずです。

+0

あなたが最初にいました。 – rsk82

関連する問題