定义一个没有可见性的类方法是"公共"的简写吗?

gil*_*ero 6 php visibility

我经常看到代码是一个没有可见性关键字的函数.例如:

class Foo() {
  function bar() {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

它是public功能的简写吗?省略它是一个好习惯吗?

class Foo() {
  public function bar() {
    //..
  }
}
Run Code Online (Sandbox Code Playgroud)

Via*_*iuk 9

是的,你是对的; 当你省略可见性修饰符时,它意味着它public.

这是PHP 4的一个保留,它不支持可见性运算符.包含此功能是为了向后兼容.

你可以在这里阅读更多相关信息.

  • +1为了提供解释,这是什么意思,所以每个人都可以自行决定。 (2认同)

kor*_*rko 2

正如PHP 文档中所写,

没有任何显式可见性关键字声明的方法被定义为公共。

所以,是的,在

class Foo() { public function bar() { //.. } }
Run Code Online (Sandbox Code Playgroud)

Foo::bar()是公开的,但省略 Visibility 关键字绝不是一个好的做法。如果它是一个快速且丑陋的脚本为什么不呢,但在其他情况下你应该指定它。