En ce qui concerne PHP, y a-t-il un moyen de changer l'ordre des propriétés de l'objet?PHP: changer l'ordre des propriétés de l'objet
class o {public $a = 1, $b = 2;}
$o = new o;
foreach (get_object_vars($o) as $k => $v) {
print $k . '->' . $v . PHP_EOL;
}
sortie:
a->1
b->2
variables publiques existantes peuvent être unset()
, et ajoutée, par exemple avec $o->c = 3;
. Mais array functions ne fonctionne pas avec les objets, et je ne veux pas convertir l'objet en stdClass. La seule solution pratique que je peux penser est de décorer un objet tableau et de surcharger les méthodes magiques __get()
et __set()
, mais c'est juste une solution de contournement, pas une solution.
j'avais posté une solution en utilisant '__invoke' mais quelqu'un downvoted, ne pas vous voulez le faire comme ça. –
__invoke n'est pas censé être utilisé à cette fin –
s'il vous plaît vérifier ma réponse - je l'ai édité et ajouté une mention sur l'interface ArrayObject –