2012-02-06 2 views
0

"콜백"인수를 사용하는 함수가 있습니다. 이것은 함수 또는 정적 클래스 메소드가 될 수 있습니다.제공된 "콜백"인수가 정적인지 확인하십시오.

방법이 정적인지 아닌지 어떻게 확인할 수 있습니까?

+0

아마도 도움이 될 것입니다. http://stackoverflow.com/questions/1858538/how-do-i-check-in-php-that-im-in-a-static-context-or-not – Alex

+0

왜 그럴까요? 문제? 확실히'call_user_func'는 콜백의 종류 *에 대한 걱정없이 당신이해야 할 일을 모두 수행합니까? – lonesomeday

+0

콜백 문자열이 다른 위치에 저장되어 다른 시간에 호출 되었기 때문에 (다른 페이지 요청). 정적 메소드인지 확인하고 싶습니다. – Alex

답변

2

나는 이것을 이 되겠지만 리플렉션을 통해이 작업을 수행 할 수 있다고 가정합니다.

콜백을 가정하면 것은 $callback입니다 :

if (is_array($callback)) { // a function will just be a string 
    $classname = $callback[0]; 
    $methodname = $callback[1]; 

    $method = new ReflectionMethod($classname, $methodname); 

    if ($method->isStatic()) { 
     // method is static 
    } 
} 

참고이 $callback[0]가 객체 인 경우 회하지 계정을한다, 또는 당신은 $callback, 또는 다른 아마도 모든 종류의 같은 람다 함수가있는 경우 상황. 나는 네가 찾고있는 것을 정말로 이해하지 못한다. 이것으로 충분할 수 있습니다.

관련 문제