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