Souligner en fonction php
-
10-07-2019 - |
Question
Qu'est-ce que cela signifie lorsqu'un nom de fonction PHP commence par un trait de soulignement?
par exemple: __ construct ()
Je sais ce que la construction signifie, mais j’ai vu d’autres endroits où la fonction commence par un trait de soulignement ou un double soulignement et je ne suis tout simplement pas sûr de sa signification.
La solution
Cela signifie que PHP l'appelle implicitement.
C'est ce qu'on appelle une "méthode magique"
En outre, il s'agit de deux traits de soulignement et non d'un.
En savoir plus ici: Méthodes magiques de PHP
Autres conseils
En PHP, les fonctions commençant par deux traits de soulignement ont généralement une signification particulière. À partir du manuel:
PHP réserve tous les noms de fonctions en commençant par __ comme magique. Il est recommandé de ne pas utiliser noms de fonction avec __ en PHP sauf si vous voulez de la magie documentée fonctionnalité.
Par exemple, __construct () est une méthode spéciale appelée automatiquement lors de l'initialisation d'un objet.
Voir aussi: http://php.net/manual/en/ language.oop5.magic.php
Il existe également une dénomination commune "style de codage". qui utilise un trait de soulignement initial pour indiquer que les méthodes ou les propriétés sont privées / protégées. Je pense que c'est assez répandu.
Comme indiqué dans d'autres réponses, le double trait de soulignement est utilisé pour "magique". méthodes. L'idée est que l'utilisateur n'utilise jamais intentionnellement deux traits de soulignement pour un nom de méthode, il y a donc peu de risque de collision. La raison pour laquelle ce n’est pas un trait de soulignement unique, je crois, c’est que ce soulignement était une convention populaire pour les méthodes privées à l’époque (der), avant que le mot-clé 'private' ne soit venu pour imposer la confidentialité à OO.
Dans codeigniter, si vous démarrez une méthode dans un contrôleur avec un trait de soulignement, le routeur saura qu'il ne sera pas autorisé à y accéder à partir de l'URL.