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