Anonyme Funktion in 5.2 create_function konvertieren
-
21-12-2019 - |
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.
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