“公共静态”还是“静态公共”?

2022-08-30 10:57:36

关于PHP中函数声明关键字的一个小问题:如果你有一个静态的类方法,那么这个关键字应该在可见性关键字(,,)之前还是之后?假设所有方法(静态方法或其他方法)都有可见性关键字,那么您希望可见性关键字相对于关键字保持在同一位置:staticpublicprotectedprivatefunction

public function foo() {}

public function bar() {}

protected function baz() {}

private function quux() {}

现在假装一对夫妇是静态的:

public function foo() {}

static public function bar() {}

protected function baz() {}

static private function quux() {}

此外,如果一个方法是静态的,你希望它是第一个看到的东西,因为这对它是什么类型的方法的影响甚至比可见性关键字更大。

这完全是一个可读性问题,因为它显然没有功能或设计后果。(我能想到的。


答案 1

从 PSR-2:

必须在所有属性和方法上声明可见性;摘要和最终必须在可见性之前声明;静态必须在可见性之后声明。[参考资料]

...如果你是一个关心PHP框架互操作组标准和约定的人。

所以不是根据他们。public staticstatic public


答案 2

像Java和C#这样的语言要求访问修饰符放在第一位,所以编辑:前面的删除行是完全错误的。这两种语言都没有这个要求。


public static

对我来说看起来是正确的。这两种方法都可以提出论据,而我的是这样的:由于“静态”限定了函数而不是访问修饰符,因此说它更有意义

<access_modifier> static

如果你反过来使用它,“静态”的含义就不那么清楚了。


推荐