9

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

例如:__construct()

我知道该构造的含义,但我已经看到函数以下划线或双下划线开头的其他地方,我只是不确定其重要性。

4

5 回答 5

19

这意味着 PHP 隐式调用它。

它被称为“魔术方法”

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

在此处了解更多信息:PHP 魔术方法

于 2009-11-30T16:53:35.890 回答
5

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

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

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

另请参阅: http: //php.net/manual/en/language.oop5.magic.php

于 2009-11-30T16:54:04.300 回答
3

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

于 2014-12-22T00:07:59.363 回答
1

如其他答案所述,双下划线用于“魔术”方法。这个想法是用户永远不会故意在方法名称中使用两个下划线,因此冲突的风险很小。我相信它不是单个下划线的原因是,在'private'关键字出现以强制OO隐私之前,单个下划线是过去糟糕(der)时代私有方法的流行约定。

于 2009-11-30T17:01:58.813 回答
0

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

于 2009-11-30T17:14:03.920 回答