为了账号安全,请及时绑定邮箱和手机立即绑定

PHP类方法中的下划线会如何处理?

PHP类方法中的下划线会如何处理?

PHP
Helenr 2019-10-08 11:18:04
在查看各种PHP库时,我注意到许多人选择在某些类方法的前面加一个下划线,例如public function _foo()...代替...public function foo()我意识到这最终归结于个人喜好,但我想知道是否有人对这种习惯的来历有所了解。我的想法是,它可能是从PHP 4继承过来的,然后才可以将类方法标记为protected或private,以暗示“不要从类外部调用此方法”。但是,我也想到,它可能起源于我不熟悉的某个地方(一种语言),或者背后有很好的理由让我从了解中受益。任何想法,见解和/或意见将不胜感激。
查看完整描述

4 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

它来自于面向对象的PHP(PHP 4)的糟糕年代。OO的实现非常糟糕,并且不包括私有方法之类的东西。为了弥补这一点,PHP开发人员在方法的开头加了下划线,这些方法原本是私有的。在一些较旧的课程中,您会发现/**private*/ __foo() {它会增加一些重量。

我从未听说过开发人员在所有方法前都加下划线,因此我无法开始解释造成这种情况的原因。


查看完整回答
反对 回复 2019-10-08
?
MM们

TA贡献1886条经验 获得超2个赞

我认为,目前这些PHP约定的最权威来源将是PSR-2:编码样式指南,因为Zend框架是PSR的一部分:


属性名称不应以单个下划线作为前缀,以表示受保护的或私有的可见性。


查看完整回答
反对 回复 2019-10-08
  • 4 回答
  • 0 关注
  • 947 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信