2012-07-10 5 views
65

PHP에서 익명 함수를 사용하여 놀고 있었고 그 변수가 외부 변수에 도달하지 않는 것 같았습니다. 이 문제를 해결할 수있는 방법이 있습니까?익명 함수의 PHP 변수

예 :

$variable = "nothing"; 

functionName(someArgument, function() { 
    $variable = "something"; 
}); 

echo $variable; 

윌 출력 : "아무것도." 익명 함수가 $ 변수에 액세스 할 수있는 방법이 있습니까?

답변

168

예, use a closure : 당신이 $variable을 수정하고 익명 함수의 범위 밖에서 수정 된 값을 검색 할 수 있도록, 그것이 폐쇄 &을 사용하여 참조 할 수 있어야

functionName(someArgument, function() use(&$variable) { 
    $variable = "something"; 
}); 

주 .

+1

굉장! 전에 보지 못했던 .. =) – einord

+0

새것! PHP 5.3에서 새로 추가 된 구문입니다. –

+1

@Rocket 그래서, 공정하게, 진정한 익명 함수 구문 (create_function()과 반대)과'use' 키워드는 [동일한 문서 페이지] (http : // php. net/manual/en/functions.anonymous.php)에 대한 설명입니다. – DaveRandom