PHP 函数名以下划线开头是什么意思?
例如:__construct()
我知道该构造的含义,但我已经看到函数以下划线或双下划线开头的其他地方,我只是不确定其重要性。
PHP 函数名以下划线开头是什么意思?
例如:__construct()
我知道该构造的含义,但我已经看到函数以下划线或双下划线开头的其他地方,我只是不确定其重要性。
在 PHP 中,以两个下划线开头的函数通常具有特殊含义。从手册:
PHP 将所有以 __ 开头的函数名保留为神奇。建议您不要在 PHP 中使用带有 __ 的函数名,除非您想要一些记录在案的魔术功能。
例如 __construct() 是一个在初始化对象时自动调用的特殊方法。
另请参阅: http: //php.net/manual/en/language.oop5.magic.php
还有一种常见的命名“编码风格”,它使用一个初始下划线来指示方法或属性是私有的/受保护的。我认为它很普遍。
如其他答案所述,双下划线用于“魔术”方法。这个想法是用户永远不会故意在方法名称中使用两个下划线,因此冲突的风险很小。我相信它不是单个下划线的原因是,在'private'关键字出现以强制OO隐私之前,单个下划线是过去糟糕(der)时代私有方法的流行约定。
在 codeigniter 中,如果您在控制器中使用下划线启动方法,路由器将知道不允许从 url 访问它。