代码之家  ›  专栏  ›  技术社区  ›  alexcoco akvallejos

php方法:getmyvariable()与myvariable()。

  •  3
  • alexcoco akvallejos  · 技术社区  · 14 年前

    我想知道在用PHP编码时,什么更好或更容易被接受。我在Java中教过,获取和设置变量的类方法应该用“get”和“SET”前缀。不过,我想知道的是,我应该在常规的PHP函数上使用这些前缀。

    例如,要从会话变量中检索用户名,我要么
    getUsername()

    username()

    什么是优点和最佳实践。我知道使用“get”更容易记忆,但它是相当多余的(尤其是对于我不希望让其他人阅读的个人项目),但为了良好的实践,我希望它是正确的。

    在这里,变量的命名约定是什么?下划线分隔还是驼色大小写?我环顾四周,看到了两者的混合。WordPress在函数名中倾向于使用下划线,但许多其他网站说camel case是最好的。

    6 回复  |  直到 14 年前
        1
  •  7
  •   ircmaxell    14 年前

    我个人试着远离getter/setter。我喜欢用魔法的方法,这样我就可以 $foo->myVar 无需显式调用函数(我认为它使代码更可读)。

    也就是说,在某些情况下,我使用显式的getter和setter(基本上是在直接使用变量的结果不明确的情况下)。例如,如果我将magic方法映射到一个内部数组,并且有其他需要访问的成员变量)。在这种情况下,我使用 $foo->getMyVar() 作为函数签名。

    IMHO, $foo->myVar() 如果你知道它是一个变量,那就有意义了。但是如果你看到 $foo->show() . 这是否意味着表演表演动作?或者这是否意味着获取显示变量的当前设置?

    我总是试图用一些识别方法所做的事情来命名所有方法。 $foo->var() 没有任何迹象表明发生了什么。但是 $foo->showVar() 有(至少更多)。

    至于命名约定,就看你读的是谁。我喜欢驼色的箱子。但是下划线没有问题。挑一个,坚持下去。一致性比选择本身更重要…

        2
  •  4
  •   Bill Karwin    14 年前

    一般来说,方法包含动词是很好的。

    查看PHP的PEAR命名约定: http://pear.php.net/manual/en/standards.naming.php

    他们鼓励getter方法使用“get”前缀。我将修改此内容以表示使用“is”作为布尔类属性的前缀。

    Pear还鼓励使用camel case(或“studly caps”)而不是下划线。

        3
  •  2
  •   JYelton Melchior Blausand    14 年前

    我个人认为“get”前缀很有用。尽管这取决于您的IDE和偏好。如果您的IDE提供了注释和工具提示,那么它可以用一个简单的mouseover提醒您,myfunction可以这样或那样做。

    我经常使用其他有用的前缀: get , set , validate (或者只是 val ) parse show . 我发现在一大堆函数中,小描述符有很大帮助。

        4
  •  1
  •   Aman    14 年前

    首先 $_SESSION 是一个全局变量,您真的不需要getter。根据更好的命名约定,最好使用getUsername()。

    休息是个人的选择或意见。最好选择一个适合你的命名约定并坚持下去。

        5
  •  1
  •   Raoul Duke    14 年前

    当我在那里的时候,什么是合适的 变量命名约定? 下划线分隔还是驼色大小写?

    无论你最喜欢什么,只要你和它保持一致。下划线风格更古老的学校和C喜欢,而CAMELCASE风格显然是由Java启发。但是用下划线分隔会使您的姓名变长。

        6
  •  0
  •   Peter Loron    14 年前

    就我个人而言,我认为方法名和变量名越明确,越容易解释越好。如果您以外的任何人都要查看代码,这一点非常重要。随着项目规模的扩大,这也会有所帮助。

    另一个关键是一致性……选择一些东西并坚持下去。