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