相信对于刚学php的人来说,类中方法的作用域总是让人很难理解,而类中方法作用域有时候区别只是那么一点,那么如何来深入的了解类方法的作用域呢,下面通过实例,我相信能让你更加清晰的了解。
标记为protected的类方法只能在该类及其子类中使用。
这句话怎么理解呢,下面是一段代码:
class zch{
protected function getname()
{
echo "getname";
}
public function borrowname()
{
$this -> getname();
}
}
$news = new zch();
$news -> borrowname();//这句代码是正确的,因为这是通类中公用方法来调用类中保护方法,即是在类内部调用的
//$news -> getname();//这句代码就是错误的,因为它在类的外部调用了类中保护方法
class subZch extends zch{
public function setname()
{
$this -> getname();//这句代码是正确的,因为保护方法能在父类和子类内部使用
}
}
$news = new subZch();
$news -> setname();
$news -> getname();//这句代码是错误的,因为它在子类外部调用的父类的保护方法,而保护方法只能在父类内部或子类内部使用。