PHP方法:getMyVariable()vs myVariable()

PHP方法:getMyVariable()vs myVariable(),php,naming-conventions,Php,Naming Conventions,我想知道在用PHP编程时,什么更好或更容易被接受。在Java中,我学到了获取和设置变量的类方法应该以“get”和“set”作为前缀。不过,我想知道的是,我是否应该在常规PHP函数上使用这些前缀 例如,要从会话变量中检索用户名,我可以使用 getUsername() 或 username() 优势和最佳实践是什么。我知道使用“get”更容易记忆,但它是多余的(特别是对于我不希望让其他人阅读的个人项目),但出于良好实践的考虑,我希望它是正确的 在这里,变量的正确命名约定是什么?下划线分隔还是驼峰大小

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

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


username()

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


在这里,变量的正确命名约定是什么?下划线分隔还是驼峰大小写?我环顾四周,发现两者兼而有之。Wordpress倾向于在函数名中使用下划线,但许多其他网站都说驼峰大小写最好。

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

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

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


我还经常使用其他有用的前缀:
get
set
validate
(或者只是
val
)、
parse
,以及
show
。我发现在函数的海洋中,小描述符非常有用。

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

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

当我这么做的时候,什么是正确的选择 变量的命名约定? 下划线分隔还是驼峰大小写


无论你最喜欢什么,只要你的想法与之一致。下划线样式更老派,更像C,而camelcase样式显然是受Java启发的。用下划线分隔会使你的名字变长。

我个人会尽量远离“能手/能手”。我更喜欢使用神奇的方法,这样我就可以在不需要显式调用函数的情况下执行
$foo->myVar
(我认为这使代码更具可读性)

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

如果你知道它是一个变量,那么,
$foo->myVar()
是有意义的。但是如果看到
$foo->show()
会发生什么呢。这是否意味着要表演表演动作?或者这是否意味着获取show变量的当前设置

我总是试图用能够识别它们的功能的东西来命名所有方法<代码>$foo->var()没有给出任何指示。但是
$foo->showVar()
确实如此(至少更多)


至于命名惯例,则完全取决于你读的是谁。我喜欢骆驼箱。但是下划线没有什么错。挑一个,坚持下去。一致性比选择本身更重要…

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

查看PHP的PEAR命名约定:

他们鼓励getter方法使用“get”前缀。我想修改一下,使用“is”作为布尔类属性的前缀


PEAR还鼓励使用驼峰大小写(或“studly caps”)而不是下划线。

有关命名约定,请参见:或者我在Mac OS X上使用TextMate,我认为它没有任何鼠标悬停的定义功能。“但是$foo->showVar()有(至少moreso)”-我认为更糟,因为它听起来像是将使用
echo
或类似的方式打印出来<代码>显示应为
无效