Подчеркивание в php-функции

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

например: __construct()

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

Ответ 1

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

Он назвал "магический метод"

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

Подробнее здесь: Магические методы PHP

Ответ 2

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

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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