8795 sujets

Développement web côté serveur, CMS

Bonjour !
En PHP 5.4 on peut techniquement faire :
new test()->addElement($element); //?? 
??
et donc :
$group->addElements(array(new testB(),new test()->addElement($element));  

ne devrait pas poser de problème ?!
Netbeans 7.4 (en mode PHP5.4) me dit "syntax error unexpected -> after )" o_O
Modifié par Su4p (21 Feb 2014 - 14:51)
Tu t’es trompé sur « Corriger ». Tu avais deux options :
Corrigez-moi si je me trompe
Me corriger si je me trompe

Sinon pour autant que je sache (je connais PHP sans maîtriser) il me semble que ton premier exemple ne fonctionnerait pas. J’ai toujours vu uniquement
$group->addElements()

et jamais
group()->addElements()

ce qui expliquerait l’erreur de syntaxe. Mais encore une fois, que je ne l’ai jamais vu ne signifie pas que ça n’existe pas !

Edit : Je confirme : le manuel est assez clair.
Modifié par Ten (21 Feb 2014 - 14:51)
Haha merci Smiley smile

Je suppose que tu feras mieux le tri que moi dans ce qui est dit dans le manuel, alors bon courage Smiley cligne
Ben justement ce qui est dit dans le manuel n'est pas clair.
C'est pourquoi je demande à la communauté d'alsacréations.
Administrateur
Bonjour,

pourrais-tu stp éditer ton titre en éditant ton 1er message et y faire figurer la description de ta question (ça parle de PHP, d'objet, de syntaxe, etc) ?
De toute manière, ce n'est pas une question liée spécifiquement à ta bibliothèque, c'est une question de syntaxe.

Je ne sais pas si le parseur a été modifié en php 5.4, mais j'ai déjà pu observer que parfois dans certains cas, -> n'est pas autorisé après ) ou ] quand bien même ça paraîtrait pourtant tout à fait naturel et sensé.
Su4p a écrit :
Bonjour !
En PHP 5.4 on peut techniquement faire :
new test()->addElement($element); //?? 
??


La bonne syntaxe est :

(new test())->addElement($element); 


Mais pour que le chainage fonctionne ton constructeur et tes méthodes doivent retourner une instance de l'objet (return $this).