PHP函数中的下划线

时间:2009-11-30 16:49:32

标签: php double-underscore

PHP函数名称以下划线开头是什么意思?

例如:__construct()

我知道构造意味着什么,但我已经看到函数以下划线或双下划线开头的其他地方,我只是不确定其意义。

5 个答案:

答案 0 :(得分:17)

这意味着PHP会隐式调用它。

它被称为'魔法'

此外,它是两个下划线,而不是一个。

点击此处了解详情:PHP Magic Methods

答案 1 :(得分:5)

在PHP中,函数以两个下划线开头,通常具有特殊含义。从手册:

  

PHP保留所有函数名称   以__开头是神奇的。它是   建议您不要使用   PHP中带__的函数名,除非   你想要一些记录下的魔法   功能。

例如__construct()是一种特殊方法,在初始化对象时会自动调用。

Se还:http://php.net/manual/en/language.oop5.magic.php

答案 2 :(得分:2)

还有一个常见的命名“编码风格”,它使用一个初始下划线来表示方法或属性是私有/受保护的。我认为它非常普遍。

答案 3 :(得分:1)

如其他答案所述,双下划线用于“魔术”方法。这个想法是用户永远不会故意使用两个下划线作为方法名称,因此几乎没有碰撞的风险。我认为,它不是一个单一的下划线的原因是,在'private'关键字出现以强制执行OO私有性之前,单个下划线是私有方法的流行惯例。 >

答案 4 :(得分:0)

在codeigniter中,如果在带有下划线的控制器中启动方法,路由器将知道不允许从URL访问它。