为什么在php中使用双下划线?

为什么在php中使用双下划线?,php,Php,以下是许多名称前带有双下划线的函数: __construct, __destruct, __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __invoke, __set_state __clone 我只需要知道为什么在这些函数之前使用下划线。如上所述: PHP保留所有函数名 从“神奇”开始。它是 建议您不要使用 PHP中带_uu的函数名,除非 你想要

以下是许多名称前带有双下划线的函数:

__construct, 
__destruct, 
__call, 
__callStatic, 
__get, 
__set, 
__isset, 
__unset, 
__sleep, 
__wakeup, 
__toString, 
__invoke, 
__set_state 
__clone
我只需要知道为什么在这些函数之前使用下划线。

如上所述:

PHP保留所有函数名 从“神奇”开始。它是 建议您不要使用 PHP中带_uu的函数名,除非 你想要一些记录在案的魔法吗 功能性


长话短说,PHP隐式地调用这些函数,您不应该自己使用这种命名约定。

。在PHP中,下划线已在不同的地方使用,例如在$_xyzSuperglobals中用作前缀

您列出的方法名称是神奇的方法。为了让它们看起来更特别,它们的前缀加了两个下划线当一个下划线作为公告的使用已经太普遍时,通常会发生这种情况。此命名模式不是特定于PHP的


您仍然可以使用两个前导的
\uuuuuuu
来定义自己的函数,但不应该避免与真正的神奇方法或未来的语言扩展混淆。(虽然可能性不大。)

只是说它们是特殊的(其中一些,如uuu-get、u-set和u-call被称为神奇方法),并避免干扰您自己的方法名称。