2016-07-24 3 views
2

내가 예를 들어 결과를 반환 배열 값으로 함수를 사용하여 XML 파일을 처리하는 것을 시도하고있다 : 결과를 반환하는 배열 값으로 함수를 사용하여

$StartTagsArray = [  
    'product1' => getValue($attribute){ return $result = $attribute * 2; },  
];  

$attr = $xml->getAttribute('w:val'); 
$result = $StartTagsArray[$xml->name]; 
echo($result); 

불행하게도 나는이 고민하고를 , 다양한 오류가 발생하지만 어떤 시점에서도 반환 된 값에 액세스하여 표시 할 수 있습니다. 함수 내에서 전역 변수 $ attr을 시도했습니다. GLOTALS 배열을 사용하여 $ attr 함수를 가진 참조로 전달하려고 시도했습니다 & $ attr. "call_user_func()"를 사용하고 같은 다양한 클로저를 사용 : -

내가 읽고 스택 오버 플로우 내에서와 php.net에서하지만 아무 소용이 가능한 솔루션의 부하를 시도한 사실
‘product1' => getValue($attr, function() use(&$var)){ return $var * 2; } 

. 나는 나의 미숙 함에서 나는 눈에 띄게 명백한 것을 놓치거나 배열/콜백 등의 일부 양상을 이해하지 못한다는 것을 받아 들인다. 그러나 내 인생은 그것을 짐작할 수 없다.

배열 내의 함수에 변수를 전달하고 반환 된 값을 표시/사용하는 방법이 있다면 누구에게 말해 줄 수 있습니까?

감사

+1

'$ StartTagsArray ='제품 1 '=> 함수 ($ 속성) {return $ result = $ attribute * 2; },]; echo $ StartTagsArray [ 'product1'] (24); ' – splash58

답변

1

splash commented 등의 anonymous function

<?php 
$StartTagsArray = [ 
    'product1' => function($attribute){ return $attribute * 2; } 
]; 

$attr = 24; 

$result = $StartTagsArray['product1']($attr); 

echo($result); 

이 지문 사용

48

+0

고마워. 이것은 트릭을했다. –

관련 문제