152 votes

Création d’objets anonymes en php

Comme nous le savons, la création d’objets anonymes en JavaScript est facile, comme le code ci-dessous :

Sortie :

Cette même technique peut être appliquée dans le cas de PHP ? Pouvons-nous créer des objets anonymes en PHP ?

240voto

Jon Points 194296

"Anonyme" n'est pas la bonne terminologie quand on parle d'objets. Il serait mieux de dire "l'objet de la anonyme de type", mais cela ne s'applique pas aux PHP.

Tous les objets en PHP ont une classe. Le "défaut" de la classe est - stdClass, et vous pouvez créer des objets de cette façon:

$obj = new stdClass;
$obj->aProperty = 'value';

Vous pouvez également profiter de la coulée d'un tableau à un objet pour le plus commode de la syntaxe:

$obj = (object)array('aProperty' => 'value');
print_r($obj);

Toutefois, il convient de noter que la conversion d'un tableau à un objet est susceptible de produire des "intéressant" des résultats pour ceux de la matrice de touches qui ne sont pas valides PHP noms de variables, par exemple, voici une réponse de la mine qui montre ce qui se passe lorsque des touches de commencer avec des chiffres.

22voto

Mihailoff Points 119

Oui, c’est possible ! En utilisant cette simple classe PHP objet anonyme . Comment ça marche :

Bien sûr, cet objet est une instance de `` classe, donc il n’est pas vraiment anonyme, mais il est possible de définir des méthodes à la volée, comme le font de JavaScript.

7voto

kba Points 10874

Si vous le souhaitez imiter le JavaScript, vous pouvez créer une classe `` et ainsi obtenir le même comportement. Bien sûr ce n’est pas tout à fait anonyme plus, mais cela va fonctionner.

Qui sortira élément 2. Il a été volé à un commentaire sur PHP : Classes et objets.

-1voto

symcbean Points 27412
<blockquote> <p>Cette même technique peut être appliquée dans le cas de PHP ?</p> </blockquote> <p>Non - parce que javascript utilise prototypes/direct déclaration d’objets - en PHP (et beaucoup d’autres langages OO) et l’objet ne peut être créé qu’à partir d’une classe.</p> <p>Ainsi, la question devient - vous pouvez créer une classe anonyme.</p> <p>Encore une fois, la réponse est non - comment serait vous instanciez la classe sans pouvoir le référencer ?</p>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X