在查看各种PHP库时,我注意到很多人选择在一些类方法前面加上一个下划线,例如
public function _foo()
...instead of...
public function foo()
我意识到这归根结底是个人喜好,但我想知道是否有人知道这个习惯是从哪里来的。
我的想法是,它可能是从PHP4继承过来的,在类方法可以被标记为受保护或私有之前,作为一种暗示“不要从类外部调用这个方法”的方式。然而,我也意识到,它可能起源于我不熟悉的某个地方(一种语言),或者它背后可能有很好的推理,我可以从中受益。
如果您有任何想法、见解和/或意见,我们将不胜感激。
发布于 2009-03-19 18:08:33
它来自过去的面向对象PHP (PHP 4)。OO的实现相当糟糕,并且不包括像私有方法这样的东西。为了弥补这一点,PHP开发人员在原本打算私有的方法前面加上了下划线。在一些老的类中,你会看到/**private*/ __foo() {
给它增加了一些额外的权重。
我从来没有听说过开发人员在他们的所有方法前都加上下划线,所以我不能开始解释是什么导致了这种情况。
发布于 2012-04-09 17:22:02
我强烈反对在private/protected方法前加上下划线,因为您可以使用private/protected关键字,IDE会为您标记它。
我现在仍然是,但是,我找到了一个原因,为什么它可以是一个很好的实践。想象一下,你有一个公共方法addFoo()
,在这个方法里面你有一些任务的部分,这和其他方法addFooWhenBar()
,addFooWhenBaz()
……一样。现在,该通用方法的最佳名称是addFoo()
,但它已经被采用,因此您必须想出一些丑陋的名称,如addFooInternal()
或addFooCommon()
或...但是_addFoo()
私有方法看起来是最好的方法。
发布于 2009-03-20 16:42:11
我在为私有方法编写的PHP5类中使用了前导下划线。对于开发人员来说,这是一个很小的视觉提示,表明特定的类成员是私有的。在使用为您区分公共和私有成员的IDE时,这种类型的提示没有那么有用。这是我在C#时代学到的。旧习惯..。
https://stackoverflow.com/questions/663350
复制相似问题