Maison >développement back-end >tutoriel php >Mettre des parenthèses ou ne pas mettre des parenthèses : quand les parenthèses sont-elles nécessaires pour l'instanciation de classe PHP ?

Mettre des parenthèses ou ne pas mettre des parenthèses : quand les parenthèses sont-elles nécessaires pour l'instanciation de classe PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-20 14:34:15488parcourir

To Parenthesize or Not to Parenthesize: When Are Parentheses Necessary for PHP Class Instantiation?

Instanciation de classe PHP : parenthèses ou pas ?

Lors de la création d'une instance d'une classe en PHP, il est courant de se demander si les parenthèses qui suivent le nom de la classe est obligatoire. Cette question se pose particulièrement lorsqu'aucun paramètre de constructeur n'est impliqué.

Considérons deux exemples :

$foo = new bar;
$foo = new bar();

Ces deux instructions sont fonctionnellement identiques. Les deux créeront une instance de la classe bar et l'attribueront à la variable $foo.

La signification des parenthèses

Bien que les parenthèses puissent sembler facultatives, il existe en réalité quelques subtilités à considérer. En PHP, les parenthèses servent à deux fins principales :

  1. Instanciation : Les parenthèses indiquent que le code suivant est une instruction de création d'instance.
  2. Fonction Invocation :Les parenthèses sont également utilisées pour l'invocation de fonctions.

Dans le cas de l'instanciation de classe, l'absence de parenthèses peut prêter à confusion. Sans parenthèses, PHP tentera d'analyser le code comme une invocation de fonction. Par exemple :

$object = new bar;
echo $object->name(); // Error: Function "name" not found

Dans cet exemple, PHP interprète "nouvelle barre" comme un appel de fonction et tente de trouver une fonction nommée "nom", qui n'existe pas. L'ajout de parenthèses résout ce problème :

$object = new bar();
echo $object->name(); // Success: Function "name" found

Préférence personnelle

En fin de compte, l'utilisation ou non de parenthèses lors de l'instanciation d'une classe sans paramètres de constructeur est une question de préférence personnelle . Cependant, il est important d'être conscient du risque de confusion lié à l'omission des parenthèses.

Si vous n'avez pas de convention de codage spécifique, n'hésitez pas à utiliser l'option que vous préférez. Certains développeurs préfèrent inclure des parenthèses pour plus de clarté, tandis que d'autres aiment les omettre pour plus de simplicité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn