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 ?
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 :
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!