【问题标题】:Is there any difference between public static function and static public function in PHP?PHP中的公共静态函数和静态公共函数有什么区别吗?
【发布时间】:2019-10-02 01:28:44
【问题描述】:

我们声明一个公共静态函数,我总是使用:

class Foo {
    public static function bar() {}
}

但是,我读了一个我看到的图书馆:

class Foo {
    static public function bar() {} // Note the inversion of public and static
}

然后我尝试在这个小sn-p中比较两种设计:

class Test {
    public function __construct() {
        $a = self::a();
        $b = self::b();

        var_dump($a, $b);
    }

    static public function a() {
        return "a";
    }

    public static function b() {
        return "b";
    }
}

不出所料,我在调试器中看到了“a”和“b”。

我在 C# 中读到这完全一样:public static vs static public - is there a difference?

但是在PHP中,这两种设计有什么不同还是纯粹的代码风格选择?

【问题讨论】:

  • 与“棕色大狗”和“棕色大狗”的区别相同。

标签: php static styles


【解决方案1】:

这是一样的。约定是“[public|protected|private] [static] function”

所以public static function b()

【讨论】:

  • 我很确定是这样,但我真的很想要能证明这一点的东西。在官方文档中找不到任何这种情况。
【解决方案2】:

根据语言没有,但根据编码风格 PSR-2 有。

PSR-2

如果您不关心编码标准,您可以同时使用两者,但我强烈建议您使用通用标准。

必须在所有属性和方法上声明可见性; abstract 和 final 必须在可见性之前声明; static 必须在可见性之后声明。

还有一件事,虽然 php 官方文档中没有建议的编码方式,但您可以以此为指导

PHP-FIG

您可以在那里找到许多资源,这些资源将对您的各种相关问题有所帮助。

【讨论】:

  • 非常感谢您提供所有这些详细信息。我现在坚持 PSR-2 很长时间了,但在我看来这是一个灰色地带。
猜你喜欢
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-28
  • 2013-05-13
  • 2011-10-23
  • 1970-01-01
相关资源
最近更新 更多