您好我有以下方法。我想在方法返回之前使用无名函数并更改一些数据,而不是创建一个单独的函数来本地化数据库查询的结果。我还希望该方法从无名函数返回过滤后的数据。我在下面的代码中做错了什么?
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;
};
}
答案 0 :(得分: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
。
答案 1 :(得分:0)
在PHP中,无名函数称为匿名函数或闭包。这是一个例子:
<?php
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
?>
了解更多信息see docs。