我方法的签名就是这样:
public function ProgramRuleFilter(&$program, $today=null) {
当我援引这一点时,
$programs = array_filter($programs, array($this, ProgramRuleFilter ));
一切照旧。 <>Program RulesFilter方法更新了<编码>$program>/code>阵列,然后如果其成功正确过滤了$programs
,则回归真实/数字。
However, now I want to pass an extra argument to the filter, $today
. How can I do that?
我试图这样援引:
$programs = array_filter($programs, new CallbackArgs(array($this, ProgramRuleFilter ),$today));
利用这个小阶层作为包裹:
class CallbackArgs {
private $callback;
private $args;
function __construct() {
$args = func_get_args();
$this->callback = array_shift($args);
$this->args = $args;
}
function __invoke(&$arg) {
return call_user_func_array($this->callback, array_merge(array($arg),$this->args));
}
}
但是,这些方案还没有更新,因此,在一行中,它失去了对原始物体的提及。 我不敢确定如何解决这一问题。