문제

나는 변환을 시도하고:

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) 내부에 먼저 param.

도움이 되었습니까?

해결책

지 않지만 이상적인 솔루션을 사용할 수 있어야합 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);');
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top