Почему двойной символ подчеркивания (__) в php?

Вот несколько функций с двойными подчеркиваниями перед именем:

__construct, __destruct, __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __invoke, __set_state __clone 

Мне нужно только знать, почему этот знак подчеркивания используется перед этими функциями.

Как указано здесь :

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

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

Underscoritis. В PHP подчеркивания использовались в разных местах, например, в качестве префикса в суперглобальных суммах $ _XYZ.

Названия методов, которые вы указали, являются магическими методами . Чтобы они выглядели немного более особенными, они были префиксами с двумя символами подчеркивания. – Это то, что обычно происходит, когда использование одного подчеркивания в качестве объявления уже слишком широко распространено. Этот шаблон именования не специфичен для PHP.

Вы все же можете определить свои собственные функции с двумя ведущими __ , но вы не должны избегать путаницы с реальными магическими методами или расширениями будущего языка. (Хотя это не очень вероятно.)