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