2014-02-19 2 views
0

안녕하세요, 다음 메소드가 있습니다. 메서드를 반환하기 전에 이름없는 함수를 사용하고 일부 데이터를 변경하여 데이터베이스 쿼리의 결과를 지역화하는 별도의 함수를 만드는 대신에 사용하고 싶습니다. 또한 이름없는 함수에서 필터링 된 데이터를 반환하는 메서드를 싶습니다. 다음 코드에서 내가 뭘 잘못하고 있니?PHP 클래스 메서드 이름없는 함수의 반환 값

public function getStats($request){ 

    // some custom input filtering 

    $params = array('uid' => $this->uid); 
    $reply = $db->get($query,$params); 

    return function() use (&$reply){ 

     //localization of some strings 

     return $reply; 
    }; 
} 

답변

1

익명 함수가 반환 한 값을 반환하는 대신 함수 자체를 반환합니다. 대신이 시도 :

public function getStats($request){ 

    // some custom input filtering 

    $params = array('uid' => $this->uid); 
    $reply = $db->get($query,$params); 

    $myfunction = function() use ($reply){ 

     //localization of some strings 

     return $reply; 
    }; 

    return $myfunction(); 
} 

또한, 필요 참조 $reply을 통과 없습니다.

0

PHP에서 이름이없는 함수는 익명 함수 또는 클로저로 알려져 있습니다. 다음은 예입니다.

<?php 
$greet = function($name) 
{ 
    printf("Hello %s\r\n", $name); 
}; 

$greet('World'); 
$greet('PHP'); 
?> 

자세한 내용은 see docs을 참조하십시오.