Php - 函数和变量是否必须声明 public?
Php - Do functions and variables have to be declared public?
函数和变量是否必须声明 public
还是默认 public
?
Class Bread {
$bread = "";
function toast()
{
$bread = "Toasticles!"
}
}
在此示例中,$bread
和函数 toast()
public 是否都没有实际声明它们?
这是一个关于实例变量和函数可见性的问题
属性:
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
,那么由于显而易见的原因,您的大部分代码将变得无用(并且无法工作)。
函数和变量是否必须声明 public
还是默认 public
?
Class Bread {
$bread = "";
function toast()
{
$bread = "Toasticles!"
}
}
在此示例中,$bread
和函数 toast()
public 是否都没有实际声明它们?
这是一个关于实例变量和函数可见性的问题
属性:
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
,那么由于显而易见的原因,您的大部分代码将变得无用(并且无法工作)。