PHP 5.3.0 USE关键字 - 如何在5.2中反向移植?

时间:2011-05-03 11:56:53

标签: php

我有一些使用PHP中的USE函数为php 5.3.0编写的代码

有人可以帮我改变这个为5.2.9工作吗?

$available  = array_filter($objects, function ($object) use ($week) { 
    return !in_array($object, $week);
});

感谢您的帮助

4 个答案:

答案 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");