Conversione della funzione anonima su 5.2 Create_function
-
21-12-2019 - |
Domanda
Sto tentando di convertire:
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 una funzione che può essere utilizzata in 5.2
Quale finora presumo che potessi fare in questo modo:
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);');
.
Ma non è possibile eseguire use($c,$d)
all'interno del primo param.
Soluzione
Sebbene non sia una soluzione ideale che dovresti essere in grado di utilizzare la parola chiave global
per realizzare ciò di cui hai bisogno:
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);');
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow