Underscore in php function
当PHP函数名以下划线开头时,它意味着什么?
例如:
我知道这个构造的意思,但是我见过其他地方,函数以下划线或双下划线开头,我只是不确定其意义。
这意味着PHP隐式地调用它。
这叫做"魔法方法"
另外,它是两个下划线,而不是一个。
在这里了解更多:PHP魔术方法
在PHP中,以两个下划线开头的函数通常具有特殊含义。从手册中:
PHP reserves all function names
starting with __ as magical. It is
recommended that you do not use
function names with __ in PHP unless
you want some documented magic
functionality.
例如,construct()是一种特殊的方法,在初始化对象时自动调用。
另见:http://php.net/manual/en/language.oop5.magic.php
还有一个常见的命名"编码样式",它使用一个初始下划线来表示方法或属性是私有的/受保护的。我认为它相当广泛。
如其他答案所述,双下划线用于"魔法"方法。其想法是,用户不会故意使用两个下划线作为方法名,因此冲突的风险很小。我认为,它不是单个下划线的原因是,在"private"关键字用于强制OO隐私之前,单个下划线在过去是一种流行的私有方法约定。
在CodeIgniter中,如果在控制器中使用下划线启动方法,路由器将知道不允许从URL访问该方法。