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

时间:2012-06-11 20:59:16

标签: php visibility

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

class Foo() {
  function bar() {
    // ...
  }
}

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

class Foo() {
  public function bar() {
    //..
  }
}

2 个答案:

答案 0 :(得分:7)

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

这是PHP 4的延续,它不支持可见性运算符。包含此功能是为了向后兼容。

您可以详细了解here

答案 1 :(得分:2)

正如PHP Doc所述,

  

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

所以,是的,在

class Foo() { public function bar() { //.. } }

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