Что означает, когда имя функции PHP начинается с подчеркивания?
например: __construct()
Я знаю, что означает конструкция, но я видел другие места, где функция начинается с подчеркивания или двойного подчеркивания, и я просто не уверен в значении.
Что означает, когда имя функции PHP начинается с подчеркивания?
например: __construct()
Я знаю, что означает конструкция, но я видел другие места, где функция начинается с подчеркивания или двойного подчеркивания, и я просто не уверен в значении.
Это означает, что PHP вызывает это неявно.
Он назвал "магический метод"
Кроме того, это два символа подчеркивания, а не один.
Подробнее здесь: Магические методы PHP
В PHP функции начинаются с двух символов подчеркивания, как правило, имеют особые значения. Из руководства:
PHP резервирует все имена функций начиная с __ как магический. это рекомендуется не использовать имена функций с __ на PHP, если вам нужна документальная магия функциональность.
Например, __construct() - это специальный метод, который вызывается автоматически при инициализации объекта.
Также существует общий стиль кодирования, называемый "стиль кодирования", который использует одно начальное подчеркивание, чтобы указать, что методы или свойства являются конфиденциальными/защищенными. Я думаю, что это довольно широко.
Как отмечено в других ответах, двойное подчеркивание используется для "магических" методов. Идея состоит в том, что пользователь никогда не намеренно использовал бы два символа подчеркивания для имени метода, поэтому риск столкновения невелик. Я считаю, что это не единственное подчеркивание, так как единственное подчеркивание было популярным соглашением для частных методов в плохие (der) старые дни, прежде чем ключевое слово 'private' пришло, чтобы обеспечить неприкосновенность OO.
В codeigniter, если вы запустите метод в контроллере с подчеркиванием, маршрутизатор будет знать, что он не может быть доступен из URL-адреса.