PHP 类方法中的前导下划线是怎么回事?

新手上路,请多包涵

在查看各种 PHP 库时,我注意到很多人选择在某些类方法前加上一个下划线,例如

public function _foo()

…代替…

 public function foo()

我意识到这最终归结为个人喜好,但我想知道是否有人对这种习惯的来源有所了解。

我的想法是它可能是从 PHP 4 继承而来的,在类方法可以被标记为受保护或私有之前,作为暗示“不要从类外部调用此方法”的一种方式。但是,我也想到它可能起源于我不熟悉的某个地方(一种语言),或者它背后可能有很好的推理,我会从了解中受益。

任何想法、见解和/或意见将不胜感激。

原文由 nocash 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 735
2 个回答

它来自面向对象的 PHP (PHP 4) 的糟糕旧时代。 OO 的实现非常糟糕,并且不包括私有方法之类的东西。作为补偿,PHP 开发人员在原本是私有的方法前面加上了下划线。在一些较早的课程中,您会看到 /**private*/ __foo() { 给它一些额外的重量。

我从来没有听说过开发人员在他们所有的方法前都使用下划线,所以我无法开始解释是什么原因造成的。

原文由 Jeremy DeGroot 发布,翻译遵循 CC BY-SA 2.5 许可协议

这意味着此方法是私有的。

“我意识到这最终归结为个人喜好,但我想知道是否有人对这种习惯的来源有所了解。” - 这不应该是个人偏好,因为每种语言或框架都有自己的编码标准。一些固件编码标准以 _ 开头私有方法,而一些固件不鼓励这样做。

您应该使用您在其中编程的固件的编码标准。要检查您的代码是否符合编码标准,您有一个工具 PHP_CodeSniffer: https ://github.com/squizlabs/PHP_CodeSniffer

非常有用,检测有关编码标准的错误。

原文由 Marina Tešić 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题