PHP提供了访问修饰符。它们可以控制属性和方法的可见性。通常,它们放置在属性和方法声明之前。PHP支持如下3种访问修饰符:
■默认选项是public,这意味着如果没有为一个属性或方法指定访问修饰符,它将是public。公有的属性或方法可以在类的内部和外部进行访问。
■private访问修饰符意味着被标记的属性或方法只能在类的内部进行访问。如果没有使用__get和__set方法,你可能会对所有属性都使用这个关键字。也可以选择使得部分方法成为私有的,例如,如果某些方法只是在类内部使用的工具性函数。私有的属性和方法将不会被继承(在本章的稍后内容将详细介绍它)。
■protected访问修饰符意味着被标记的属性或方法只能在类内部进行访问。它也存在于任何子类;同样,在本章的稍后讨论继承问题的时候,我们还将回到这个问题。在这里,可以将protected理解成位于private和public之间的关键字。
如下所示的代码说明了public访问修饰符的使用:
class classname
{
public$attribute;
public function__get($name)
{
return$this->$name;
}
public function__set($name,$value)
{
$this->$name=$value;
}
}
在这里,每一个类成员都具有一个访问修饰符,说明它们是公有的还是私有的。可以不添加public关键字,因为它是默认的访问修饰符,但是如果使用了其他修饰符,添加public修饰符将便于代码的理解和阅读。