2014-09-01 2 views
3

나는 실행하고자하는 익명의 함수를 포함하는 2 차원 배열을 가지고있다. 어떤 이유로 나는이 함수를 호출하는 방법에 대해 공백을 그리 고있다. PHP - 2d 배열 내부 함수

던지기로 다음과 같은 오류가 :

$someArray[] = ['somevalue', function() {echo "test function";}]; 
$someArray[0][1](); 

오류 : 다음과 같은 처리를 할 경우

Notice: Undefined variable 
Fatal error: Function name must be a string 

, 그것은 배열 내부 함수를 호출하려면

$someFunc = $someArray[0][1]; 
$someFunc(); 
+1

5.4에서 작동해야합니다. – Yang

답변

1

를 작동합니다 이것을 사용하십시오 :

call_user_func($someArray[0][1], $arg1, $arg2, $arg3); 

또는이이 같은 기능이 작동하지 않습니다 호출 PHP 5.4

call_user_func_array($someArray[0][1], array($arg1, $arg2, $arg3)); 
+0

감사합니다. 이것은 내가하고있는 일에 적용됩니다. – Ralph

0

이전.

절대적으로 이것을 할 수 있어야한다면 PHP 5.4 이상으로 업그레이드해야합니다.

PHP의 이전 버전에서는 클로저를 사용하기 전에 클로저를 참조 해제해야합니다 (배열 밖으로 가져 오기).