PHP匿名函数
可能重复:PHP匿名函数,php,Php,可能重复: 你好, 我怎么办 $ar = array_filter($ar, function($el) { $search = 'New York'; $name = $ar['name']; $potentialNumber = substr($name, strlen($search)); return ((substr($name, 0, strlen($search)) == $search) && // starts with NY
你好, 我怎么办
$ar = array_filter($ar, function($el) {
$search = 'New York';
$name = $ar['name'];
$potentialNumber = substr($name, strlen($search));
return ((substr($name, 0, strlen($search)) == $search) && // starts with NY
($potentialNumber == '' || is_numeric($potentialNumber)); // [0-9]*
});
在PHP 5.3之前?最接近的方法是使用
创建函数
来模拟lambda函数正如您所知,在5.3之前,您不能使用匿名函数/闭包,因此明智的解决方案是定义一个函数(通过使用或正常使用)在您当前所在的函数/方法的本地范围内。如示例1所示:只需使用回调
$ar = array_filter($ar, "myFunction");
function myFunction($el) {
$search = 'New York';
$name = $ar['name'];
$potentialNumber = substr($name, strlen($search));
return ((substr($name, 0, strlen($search)) == $search) && // starts with NY
($potentialNumber == '' || is_numeric($potentialNumber)); // [0-9]*
}
如果您在类中,而不是在全局代码中,则传递给数组_筛选器的回调应该是
array(此“myFunction”)
am-out-of-closevots,但肯定与(reference)重复