我正在看这个示例array_filter comment,他将一个参数传递给array_filter,如下所示
array_filter($subject, array(new array_ereg("image[0-9]{3}\.png"), 'ereg')回调如何接受具有多个参数的数组,其中一个参数是实际的回调函数
发布于 2012-07-30 15:12:49
在PHP中,可以使用以下格式的数组来表示callable。
array($object, 'methodName')
文档本身声明:
实例化对象的方法作为数组传递,该数组包含索引0处的对象和索引1处的方法名。
这在对象中与$this变量一起使用是很常见的。
在您的示例中,数组的第一个元素是使用new创建的,它是所需的实例化的对象,ereg是方法。
发布于 2012-07-30 15:12:59
array_filter函数的第二个参数需要一个callable。PHP将array($instance, 'methodname')理解为实例方法的可调用,将array('classname', 'staticmethodname')理解为静态方法(或从5.2.3版开始的简单'classname::staticmethod'。
发布于 2012-07-30 15:21:44
来扩展其他答案。在PHP >= 5.3中,我们可以使用闭包。
$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.https://stackoverflow.com/questions/11716752
复制相似问题