2009-11-30 70 views
7

当PHP函数名称以下划线开头时,这意味着什么?PHP函数中的下划线

例如:__construct()

我知道是什么意思的构建,但我见过其他地方的功能以下划线或双下划线开始,我只是不知道的意义。

+0

谢谢大家,为您解答。 – Stepppo 2009-11-30 18:05:31

回答

16

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

它被称为“魔术方法”

此外,这是两个下划线,没有之一。

更多在这里学习:PHP Magic Methods

+4

啊。魔术在PHP中。无论接下来什么? – 2009-11-30 16:54:03

+1

每个人都讨厌php - 我正在考虑学习它:( – Amarghosh 2009-11-30 16:57:54

+2

引用狮子王:“有MAGIC在空气中!!!' – 2009-11-30 17:03:18

5

在PHP中,功能开始以两个下划线通常有特殊的含义。从手册:

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

例如__construct()是在初始化的对象被自动调用的特殊方法。

硒也:http://php.net/manual/en/language.oop5.magic.php

1

在其他的答案指出,双下划线是用于“神奇”的方法。这个想法是,用户永远不会有意使用两个下划线作为方法名,所以几乎没有碰撞风险。我相信,它不是一个下划线的原因是,在'私人'关键字出现以强制执行OO私密性之前,单个下划线是在糟糕的(过去)时期私人方法的流行惯例。

0

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

2

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

+0

是的,我已经在C# – dmeehan 2015-12-17 23:16:05