Почему двойной символ подчеркивания (__) в php?
Вот несколько функций с двойными подчеркиваниями перед именем:
__construct,
__destruct,
__call,
__callStatic,
__get,
__set,
__isset,
__unset,
__sleep,
__wakeup,
__toString,
__invoke,
__set_state
__clone
Мне нужно только знать, почему этот знак подчеркивания используется перед этими функциями.
Ответы
Ответ 1
Как указано здесь:
PHP резервирует все имена функций начиная с __ как магический. это рекомендуется не использовать имена функций с __ на PHP, если вам нужна документальная магия Функциональность
Короче говоря, PHP называет эти функции неявно, и вы не должны использовать это соглашение об именах самостоятельно.
Ответ 2
Underscoritis. В PHP подчеркивания использовались в разных местах, например, в качестве префикса в суперглобальных объектах $_XYZ.
Имена методов, которые вы указали, являются магическими методами. Чтобы они выглядели немного более особенными, они были префиксами с двумя символами подчеркивания. - То, что обычно происходит, когда использование одного подчеркивания в качестве объявления уже слишком широко распространено. Этот шаблон именования не специфичен для PHP.
Вы все еще можете определить свои собственные функции с двумя ведущими __
, но не следует избегать путаницы с реальными магическими методами или будущими языковыми расширениями. (Хотя это не очень вероятно.)