首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP类方法中的前导下划线是什么?

PHP类方法中的前导下划线是什么?
EN

Stack Overflow用户
提问于 2009-03-19 18:04:31
回答 9查看 86.7K关注 0票数 167

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

代码语言:javascript
复制
public function _foo()

...instead of...

代码语言:javascript
复制
public function foo()

我意识到这归根结底是个人喜好,但我想知道是否有人知道这个习惯是从哪里来的。

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

如果您有任何想法、见解和/或意见,我们将不胜感激。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-03-19 18:08:33

它来自过去的面向对象PHP (PHP 4)。OO的实现相当糟糕,并且不包括像私有方法这样的东西。为了弥补这一点,PHP开发人员在原本打算私有的方法前面加上了下划线。在一些老的类中,你会看到/**private*/ __foo() {给它增加了一些额外的权重。

我从来没有听说过开发人员在他们的所有方法前都加上下划线,所以我不能开始解释是什么导致了这种情况。

票数 163
EN

Stack Overflow用户

发布于 2012-04-09 17:22:02

我强烈反对在private/protected方法前加上下划线,因为您可以使用private/protected关键字,IDE会为您标记它。

我现在仍然是,但是,我找到了一个原因,为什么它可以是一个很好的实践。想象一下,你有一个公共方法addFoo(),在这个方法里面你有一些任务的部分,这和其他方法addFooWhenBar()addFooWhenBaz()……一样。现在,该通用方法的最佳名称是addFoo(),但它已经被采用,因此您必须想出一些丑陋的名称,如addFooInternal()addFooCommon()或...但是_addFoo()私有方法看起来是最好的方法。

票数 14
EN

Stack Overflow用户

发布于 2009-03-20 16:42:11

我在为私有方法编写的PHP5类中使用了前导下划线。对于开发人员来说,这是一个很小的视觉提示,表明特定的类成员是私有的。在使用为您区分公共和私有成员的IDE时,这种类型的提示没有那么有用。这是我在C#时代学到的。旧习惯..。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/663350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档