【问题标题】:Converting Anonymous Function to 5.2 create_function将匿名函数转换为 5.2 create_function
【发布时间】:2013-11-16 16:49:57
【问题描述】:

我正在尝试转换:

usort($discounts, function ($a, $b) use ($c, $d){

    $value1 = $c->do_action($a, $d, $d->value);
    $value2 = $c->do_action($b, $d, $d->value);
    return $value1 == $value2 ? 0 : ($value1 > $value2 ? 1 : -1);
});

变成5.2可以使用的函数

到目前为止,我认为我可以这样做:

create_function( '$a, $b use ($that, $d)', ' $value1 = $c->do_action($a, $d, $d->value); $value2 = $c->do_action($b, $d, $d->value);return $value1 == $value2 ? 0 : ($value1 > $value2 ? 1 : -1);');

但你不能在第一个参数中使用use($c,$d)

【问题讨论】:

    标签: php anonymous-function create-function


    【解决方案1】:

    虽然不是理想的解决方案,但您应该可以使用 global 关键字来完成您需要的操作:

    create_function( '$a, $b', ' global $c, $d; $value1 = $c->do_action($a, $d, $d->value); $value2 = $c->do_action($b, $d, $d->value);return $value1 == $value2 ? 0 : ($value1 > $value2 ? 1 : -1);');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多