Вот несколько функций с двойными подчеркиваниями перед именем:
__construct,
__destruct,
__call,
__callStatic,
__get,
__set,
__isset,
__unset,
__sleep,
__wakeup,
__toString,
__invoke,
__set_state
__clone
Мне нужно только знать, почему этот знак подчеркивания используется перед этими функциями.