2011-07-03 3 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

관련 문제