Question

J'essaie de convertir :

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

Dans une fonction utilisable en 5.2

Ce que jusqu'à présent je pensais pouvoir faire comme ceci :

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

mais tu ne peux pas faire use($c,$d) à l'intérieur du premier paramètre.

Était-ce utile?

La solution

Bien que ce ne soit pas une solution idéale, vous devriez pouvoir utiliser le global mot-clé pour accomplir ce dont vous avez besoin :

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);');
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top