2010-10-06 3 views
49

Possible en double:
PHP class instantiation. To use or not to use the parentheses?Instancier une classe avec ou sans parenthèses?

Je n'ai trouvé aucune documentation officielle à ce sujet. Mais peu importe si une classe est instanciée avec notre sans les parenthèses - tant qu'il n'y a pas de paramètres impliqués, n'est-ce pas?

$car = new Car; 

ou

$car = new Car(); 

Mais quelqu'un peut me dire s'il y a une différence de performance? De quelle manière est la façon «plus correcte»? Y a-t-il des documents officiels pour cela?

Répondre

83

Toute différence de performance sera absolument négligeable.

Bien que les deux voies sont très bien, personnellement, je préfère utiliser new Car(); parce que d'habitude, une méthode est être appelé ici, et appelle la fonction/méthode en PHP nécessitent (). En outre, il est plus cohérent avec les instanciations qui ont des paramètres.

Mais à la fin, c'est à goûter. Peu importe la façon dont vous choisissez, mais lorsque vous en choisissez une, respectez-la régulièrement!

+2

Exactement ce que j'allais écrire, +1. – tplaner

+2

+1 et supprimé le mien - Je suis d'accord à 100%. – lonesomeday

+7

+1 Honnêtement, je ne considère pas 'new ClassUsingDefaultConstructor;' et 'new ClassWithConstructorWithParameters ($ foo, $ bar);' utilisé dans le même script pour être cohérent * peu importe *. Mais c'est juste moi, je suppose. – BoltClock

3

Ils sont tous les deux corrects, et je suis sûr qu'il n'y a pas de différence de performance non plus.

6

La première instanciation n'a pas de référence "officielle". Dans le document php officiel, vous trouvez toujours le second. Donc, je préférerais ceci pour la consensibilité. Mais tout est votre choix

+6

Dans un rapide survol, j'ai trouvé un grand nombre d'exemples où les exemples de documentation utilisent la forme non parenthée, y compris beaucoup dans les "Classes et Objets" section. – GZipp

Questions connexes