Подчеркнуть в функции PHP
-
10-07-2019 - |
Вопрос
Что это означает, когда имя функции PHP начинается с подчеркивания?
например: __ construct ()
Я знаю, что означает эта конструкция, но я видел другие места, где функция начинается с подчеркивания или двойного подчеркивания, и я просто не уверен в значимости. Р>
Решение
Это означает, что PHP вызывает это неявно.
Это называется «магический метод»
Кроме того, это два подчеркивания, а не одно.
Узнайте больше здесь: PHP Magic Methods
Другие советы
В PHP функции, начинающиеся с двух подчеркиваний, обычно имеют особое значение. Из руководства:
PHP резервирует все имена функций начиная с __ как магический. это рекомендуется не использовать имена функций с __ в PHP, если Вы хотите немного документированной магии функциональность. р>
Например, __construct () - это специальный метод, который вызывается автоматически при инициализации объекта.
См. также: http://php.net/manual/en/ language.oop5.magic.php р>
Существует также общий стиль именования " кодирование " который использует одно начальное подчеркивание, чтобы указать, что методы или свойства являются частными / защищенными. Я думаю, что это довольно широко распространено.
Как отмечалось в других ответах, двойное подчеркивание используется для "магии" методы. Идея состоит в том, что пользователь никогда не будет намеренно использовать два подчеркивания для имени метода, поэтому существует небольшой риск столкновения. Я полагаю, что это не единственное подчеркивание, потому что единственное подчеркивание было популярным соглашением для частных методов в старые (плохие) времена, до того, как появилось ключевое слово 'private' для обеспечения приватности ОО.
В codeigniter, если вы запускаете метод в контроллере с подчеркиванием, маршрутизатор будет знать, что нельзя разрешить доступ к нему из URL. Р>