Php - 函数和变量是否必须公开?

时间:2017-05-04 19:13:34

标签: php encapsulation public

默认情况下,函数和变量是否必须声明为public,还是public

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

在这个示例中,$bread和函数toast()都是公开的,而没有实际声明它们吗?

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

2 个答案:

答案 0 :(得分:2)

根据PHP documentation

<强>属性:

  

必须将类属性定义为public,private或protected。 如果使用var 声明,则该属性将被定义为public。

<强>方法:

  

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

答案 1 :(得分:1)

如果您宣布$bread没有可见性, 会出现解析错误:

  

解析错误:语法错误,意外&#39; $ bread&#39; (T_VARIABLE),期望 [...] 中的函数(T_FUNCTION)或const(T_CONST) x

这是因为,正如@darkcrystale所提到的那样,PHP documentation states,类属性必须定义为public,private或protected。如果使用var声明,则该属性将被定义为public。

如果您未明确指定可见性,则默认情况下,函数toast()将为public

但请记住,明确做事更好,而不是暗中做事。因此,在每种情况下将可见性声明为公开可能会帮助那些在您之后阅读代码的人。如果你不关心那些可能与你的代码一起工作的人(在这种情况下对你有羞耻感),请考虑另一个例子:你写了很多代码而没有明确宣布可见性而且{{{{{{ 1}}那个时候。但是如果PHP开发人员发疯并将默认可见性更改为public,那么由于显而易见的原因,您的大多数代码都会变得无用(并且无法工作)。

相关问题