喜欢:
public
$foo = null,
$bar = 10;
protected
$_stuff = null,
$_moreStuff = 5;
很多人似乎做到这一点。 为什么?
这不是不一致的命名(如一些PHP函数:))?
喜欢:
public
$foo = null,
$bar = 10;
protected
$_stuff = null,
$_moreStuff = 5;
很多人似乎做到这一点。 为什么?
这不是不一致的命名(如一些PHP函数:))?
它真的可以归结为一点:个人喜好。
我个人而言,我也是一个谁使用该命名约定。 前缀是什么protected
或private
以下划线,无论是一个变量或函数,让我和其他的程序员谁我经常与知识的工作,该变量是全球性的,并不会是当前类/上下文的外部访问。
一个例子可以帮助阐明用例将与类方法:
class Example {
public function firstFunction() {
// do stuff
}
protected function _secondFunction() {
// do more stuff
}
}
当我在写一个使用类的代码Example
,或类本身的容器内工作,如果我看到_secondFunction()
我会立刻知道,它不是一个公共职能,因为出发的_
,从而不是类的外部访问; 没有必要去找到实际的函数声明,看到了修改。 在另一面,我就知道firstFunction()
是公开的,因为它没有一个开始。
这是一个从PHP5之前时代的旧约定。
PHP4只有公共的知名度,并以某种方式的人希望能够判断一个属性,就是要公共或私人(同样为方法)。 表示私有成员或方法的下划线前缀,不意味着从外部使用。
虽然严格来说,它是不必要与PHP5,在那里你可以明确地标记类成员的可见性,这一惯例仍是常见的。 用户认为,这使得略读代码更容易,因为你可以马上看到,如果你还可以调用该函数从外部与否。 这是最多的个人喜好,或者给定项目的编码风格。
下划线是象征性意味着变量有一些特殊的属性(这是预定的,并能因组织或程序员改变程序员)。 传统上这意味着什么是不公开的。 即使功能有时写为:
protected function _myProtectedFunction(){}
但也注意到,PHP开始保留所有函数名__
(两个下划线)的神奇,所以建议您不要使用与函数名__
在PHP,除非你想记录一些神奇的功能。
相比较而言,Python没有设计有私人/公共和使用下划线沟通的区别。 见PEP 8的这一部分:
http://www.python.org/dev/peps/pep-0008/#designing-for-inheritance
所以,它并不一定只是一个老PHP5预先约定-人们可以故意这样做是为了同样的原因Python做。
这是最肯定只是个人喜好。 他们可能做到这一点,因为$ _GET和$ _SESSION像在PHP已经完成。