我有一些使用PHP中的USE函数为php 5.3.0编写的代码
有人可以帮我改变这个为5.2.9工作吗?
$available = array_filter($objects, function ($object) use ($week) {
return !in_array($object, $week);
});
感谢您的帮助
答案 0 :(得分:8)
不太好,但这将是一个等效的实现。
class MyWeekFilter {
protected $_week;
public function __construct($week) {
$this->_week = $week;
}
public function filter($object) {
return !in_array($object, $this->_week);
}
}
$filter = new MyWeekFilter($week);
$available = array_filter($objects, array($filter, 'filter'));
答案 1 :(得分:1)
作者代码之间是否有任何区别
$available = array_filter($objects, function ($object) use ($week) {
return !in_array($object, $week);
});
和
$available = array_diff($objects, $week);
答案 2 :(得分:0)
$available = array_filter($objects, create_function('$object', '
$week = '.var_export($week,true).';
return !in_array($object, $week);
'));
答案 3 :(得分:-3)
试试这个:
$week = array(...); // defined and instantiated before...
function callback($object) {
return !in_array($object, $week);
}
$available = array_filter($objects, "callback");