Php - 函数和变量是否必须声明 public?

Php - Do functions and variables have to be declared public?

函数和变量是否必须声明 public 还是默认 public

Class Bread {
    $bread = "";    
    function toast()
    {
        $bread = "Toasticles!"
    }
}

在此示例中,$bread 和函数 toast() public 是否都没有实际声明它们?

这是一个关于实例变量和函数可见性的问题

根据PHP documentation

属性:

Class properties must be defined as public, private, or protected. If declared using var, the property will be defined as public.

方法:

Methods declared without any explicit visibility keyword are defined as public.

如果您声明 $bread 不可见,您 得到一个解析错误:

Parse error: syntax error, unexpected '$bread' (T_VARIABLE), expecting function (T_FUNCTION) or const (T_CONST) in [...][...] on line x

这是因为,正如@darkcrystale 也提到的那样 PHP documentation states,class 属性必须定义为 public、私有或受保护。如果使用 var 声明,属性 将被定义为 public.

如果您没有明确指定可见性,函数 toast() 将默认为 public

但请记住,显式做事 比隐式做事更好 。因此,在每种情况下都将可见性声明为 public 可能会帮助那些在你之后阅读你的代码的人。如果您不关心那些可能会使用您的代码的人(顺便说一句,在这种情况下您会感到羞耻),请考虑另一个示例:您编写了很多代码但未明确声明可见性并且当时是 public .但是,如果 PHP 开发人员发疯并将默认可见性更改为 private,那么由于显而易见的原因,您的大部分代码将变得无用(并且无法工作)。