首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在array_filter中传递数组而不是回调

在array_filter中传递数组而不是回调
EN

Stack Overflow用户
提问于 2012-07-30 15:04:13
回答 4查看 1.1K关注 0票数 0

我正在看这个示例array_filter comment,他将一个参数传递给array_filter,如下所示

代码语言:javascript
复制
array_filter($subject, array(new array_ereg("image[0-9]{3}\.png"), 'ereg')

回调如何接受具有多个参数的数组,其中一个参数是实际的回调函数

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-30 15:12:49

在PHP中,可以使用以下格式的数组来表示callable

array($object, 'methodName')

文档本身声明:

实例化对象的方法作为数组传递,该数组包含索引0处的对象和索引1处的方法名。

这在对象中与$this变量一起使用是很常见的。

在您的示例中,数组的第一个元素是使用new创建的,它是所需的实例化的对象,ereg是方法。

票数 1
EN

Stack Overflow用户

发布于 2012-07-30 15:12:59

array_filter函数的第二个参数需要一个callable。PHP将array($instance, 'methodname')理解为实例方法的可调用,将array('classname', 'staticmethodname')理解为静态方法(或从5.2.3版开始的简单'classname::staticmethod'

票数 1
EN

Stack Overflow用户

发布于 2012-07-30 15:21:44

来扩展其他答案。在PHP >= 5.3中,我们可以使用闭包。

代码语言:javascript
复制
$numbers = range(1,10);
$newNumbers = array_filter($numbers, function($value) {
    return ($value & 1) === false;
});
// $newNumbers now contains only even integers. 2, 4, 6, 8, 10.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11716752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档