2014-11-01 2 views

답변

4

:

나는 이런 식으로 할 노력했다.

PHP는 가변 함수 개념을 지원합니다. 즉, 변수 이름에 변수 이름에 괄호가 추가 된 경우 PHP는 함수가 변수의 값과 동일한 이름을 찾고 이이를 실행하려고 시도합니다. 무엇보다도 은 콜백, 함수 테이블 등을 구현하는 데 사용될 수 있습니다. http://3v4l.org/sGLtj

function my_function_0() { echo "0"; } 
function my_function_1() { echo "1"; } 
function my_function_2() { echo "2"; } 
function my_function_3() { echo "3"; } 

for($i=0;$i<4;$i++) 
{ 
    $calling = 'my_function_'.$i; 
    $calling(); // by adding parentheses, a function with the same name with $calling's value will be called 
} 

이 기능과 출력됩니다 0123

를 호출하지만 마음에 계속됩니다 :

유효한 함수 이름이 시작

이 예제를 참조하십시오 문자 또는 숫자, 숫자 또는 밑줄이 뒤 따르는 글자 또는 밑줄. .

http://3v4l.org/sGLtj

그래서 당신은 한 함수 이름이 숫자로 시작하지 않는 번호로 함수 이름을 가질 수 있습니다.

0

문자열로 생성 된 함수를 호출하려면 call_user_func 함수를 사용하여 생성 된 문자열을 첫 번째 인수로 전달하십시오.

function function0(){echo "Function 0\n";} 
function function1(){echo "Function 1\n";} 
function function2(){echo "Function 2\n";} 

for($i = 0; $i < 3; ++$i){ 
    call_user_func('function' . $i); 
}