Frage

Ich versuche zu konvertieren:

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);
});

In eine Funktion, die in 5.2 verwendet werden kann

Was ich bisher angenommen habe, könnte ich so machen:

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);');

aber du kannst es nicht tun use($c,$d) innerhalb des ersten Parameters.

War es hilfreich?

Lösung

Obwohl dies keine ideale Lösung ist, sollten Sie in der Lage sein, die zu verwenden global schlüsselwort, um das zu erreichen, was Sie brauchen:

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);');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top