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