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)重复