PHP内联回调函数

7

一个快速的问题。

在php中,是否有可能内联声明回调函数?例如:

array_filter($input_array, "function($item) { $item['state'] != 0 }")
4个回答

13

是的,在 PHP 5.3 之后,您可以使用匿名函数。

array_filter($input_array, function($item) { return $item['state'] != 0; });

1
不幸的是,这不是我的情况.. 我使用的是5.1版本 :( - jose
2
@jose 那么你可以使用 create_function 函数 http://php.net/manual/zh/function.create-function.php - xdazz
请注意,匿名函数内的每行代码都需要以分号结尾。 - Tim Biegeleisen

2

这确实称为匿名函数

array_filter($input_array, function($item) { 
    return $item['state'] != 0;
});

0

使用create_function函数?例如:

 $result = array_filter($array, create_function('$a','return preg_match("#\S#", $a);'));     

0
array_filter($input_array, function($item) { 
    return $item['state'] != 0;
});

这个功能在 PHP 5.3 或以上版本中可用。在 PHP 5.4 或以上版本中,支持内联匿名函数中的 $this。

PHP 回调链接 > 如何在 PHP 中实现回调?


1
请避免重复已经被接受的答案。 - dmportella

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接