6

我经常看到没有可见性关键字定义的函数的代码。例如:

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

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

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

2 回答 2

9

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

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

你可以在这里阅读更多关于它的信息。

于 2012-06-11T21:10:39.297 回答
2

正如PHP Doc中所写,

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

所以,是的,在

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

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

于 2012-06-11T21:03:38.860 回答