Вопрос

Что это означает, когда имя функции PHP начинается с подчеркивания?

например: __ construct ()

Я знаю, что означает эта конструкция, но я видел другие места, где функция начинается с подчеркивания или двойного подчеркивания, и я просто не уверен в значимости.

Это было полезно?

Решение

Это означает, что PHP вызывает это неявно.

Это называется «магический метод»

Кроме того, это два подчеркивания, а не одно.

Узнайте больше здесь: PHP Magic Methods

Другие советы

В PHP функции, начинающиеся с двух подчеркиваний, обычно имеют особое значение. Из руководства:

  

PHP резервирует все имена функций   начиная с __ как магический. это   рекомендуется не использовать   имена функций с __ в PHP, если   Вы хотите немного документированной магии   функциональность.

Например, __construct () - это специальный метод, который вызывается автоматически при инициализации объекта.

См. также: http://php.net/manual/en/ language.oop5.magic.php

Существует также общий стиль именования " кодирование " который использует одно начальное подчеркивание, чтобы указать, что методы или свойства являются частными / защищенными. Я думаю, что это довольно широко распространено.

Как отмечалось в других ответах, двойное подчеркивание используется для "магии" методы. Идея состоит в том, что пользователь никогда не будет намеренно использовать два подчеркивания для имени метода, поэтому существует небольшой риск столкновения. Я полагаю, что это не единственное подчеркивание, потому что единственное подчеркивание было популярным соглашением для частных методов в старые (плохие) времена, до того, как появилось ключевое слово 'private' для обеспечения приватности ОО.

В codeigniter, если вы запускаете метод в контроллере с подчеркиванием, маршрутизатор будет знать, что нельзя разрешить доступ к нему из URL.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top