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

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

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

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

5 ответов


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

Это называется 'Волшебный метод'

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

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


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

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

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

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


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


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


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