Подчеркнуть в функции PHP - PullRequest
7 голосов
/ 30 ноября 2009

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

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

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

Ответы [ 5 ]

17 голосов
/ 30 ноября 2009

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

Это называется «магический метод»

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

Узнайте больше здесь: Методы PHP Magic

5 голосов
/ 30 ноября 2009

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

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

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

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

2 голосов
/ 22 декабря 2014

Существует также общее название «стиль кодирования», в котором используется одно начальное подчеркивание для указания того, что методы или свойства являются частными / защищенными. Я думаю, что это довольно широко распространено.

1 голос
/ 30 ноября 2009

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

0 голосов
/ 30 ноября 2009

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

...