以下是名称前面带有双下划线的许多函数:
__construct,
__destruct,
__call,
__callStatic,
__get,
__set,
__isset,
__unset,
__sleep,
__wakeup,
__toString,
__invoke,
__set_state
__clone
我只需要知道为什么在这些函数之前使用这个下划线。
答案 0 :(得分:34)
如上所述here:
PHP保留所有函数名称 以__开头是神奇的。它是 建议您不要使用 PHP中带__的函数名,除非 你想要一些记录下的魔法 功能
长话短说,PHP称这些函数隐式,你不应该自己使用这个命名约定。
答案 1 :(得分:4)
Underscoritis。在PHP中,下划线已经在各个地方使用,例如作为$ _XYZ超全局中的前缀。
您列出的方法名称是魔术方法。为了使它们看起来更加特殊,它们以两个下划线为前缀。 - 当使用一个下划线作为公告已经过于普遍时,通常会发生这种情况。这种命名模式并不特定于PHP。
您仍然可以使用两个前导__
来定义自己的函数,但不应该避免与真正的魔术方法或未来的语言扩展混淆。 (虽然这不太可能。)