dir*_*ide 42 php oop readability public-method
关于PHP函数声明关键字一个小点:如果你有一类方法是静态的,应在static关键字的知名度关键字之前或之后都(public,protected,private)?假设您的所有方法(静态或其他方法)都有可见性关键字,那么您希望visibility关键字与关键字保持在同一位置function:
public function foo() {}
public function bar() {}
protected function baz() {}
private function quux() {}
Run Code Online (Sandbox Code Playgroud)
现在假装一对夫妇是静态的:
public function foo() {}
static public function bar() {}
protected function baz() {}
static private function quux() {}
Run Code Online (Sandbox Code Playgroud)
此外,如果某个方法是静态的,那么您希望这是第一个看到的方法,因为这对于它甚至是可见性关键字所做的方法有更多的影响.
这严格来说是一个可读性问题,因为它显然没有功能或设计后果.(我能想到的.)
And*_*are 45
像Java和C#这样的语言要求访问修饰符首先出现 编辑:上一个被击中的线是完全错误的.两种语言都没有这个要求.
public static
Run Code Online (Sandbox Code Playgroud)
看起来对我来说正确.可以为这两种方法做出论证,我的是:由于"静态"限定了函数而不是访问修饰符,因此更有意义地说
<access_modifier> static
Run Code Online (Sandbox Code Playgroud)
如果你使用它,那么围绕"静态"含义的另一种方式则不太清楚.
JW.*_*JW. 10
I prefer static public since this way
it is easier to spot [usually rare] static methods in classes.
Run Code Online (Sandbox Code Playgroud)
所有方法都应该具有指定的可见性.所以,我们知道每个方法都会在定义中提到某个方法,唯一的问题是"它是哪个设置?".
只有一些是静态的 - 所以,对于每一个我们都要问"在定义中某处提到静态关键字吗?".所以,先把静态放在第一位,使这个问题的答案更加明显.
或者,作为一个更广泛的规则,.........我倾向于把'最特别的方面放在首位',以便我在阅读时不会潜意识地跳过事物.; O)
试试这个测试.
很快...... A类有多少静态方法?
class A {
public static methodA() {
}
protected static methodB() {
}
private staticlymethodC() {
}
}
Run Code Online (Sandbox Code Playgroud)
B类有多少静态方法?
class B {
public methodA() {
}
static protected methodB() {
}
static private methodC() {
}
}
Run Code Online (Sandbox Code Playgroud)
我认为B类更容易理解.