在进行面向对象程序设计时,为了控制对对象属性和方法的访问,引入了访问修饰符,在属
性和方法的前面加关键字 public、protected 或 private等关键字来实现控制。
在PHP中目前支持public、protected和private三个关键字:
-
Public
由 public 所定义的类成员可以在任何地方被访问,这是默认选项,如果在定义属性或方法时没有增加关键字,他将会是Public
-
Private
private意味着被标记的属性或方法只能在类内部进行访问。私有的属性和方法不能被继承
-
Protected
protected意味着被标记的属性或方法可以即可以在类内部进行访问也能被其所在类的子类和父类访问
class A {
public function method1() {
echo "method1" ."";
}
protected function method2(){
echo "method2" ."";
}
private function method3() { //私有的方法,只能在类内部调用
echo "method3" ."";
}
public function callMethod3() {
$this->method3(); //提供公开的方法,实现类内部调用私用方法,
}
}
class B extends A {
function __construct() {
$this->method1();
$this->method2();
//$this->method3(); //私有的方法不能被继承
}
function callMethod3() {
echo "Overwrite method3 from class A : ";
parent::callMethod3();
}
}
$b = new B();
$b->callMethod3();
//$b->method1();
//$b->method2(); /*protected 继承类内部访问*/
//$b->method3(); /*private 私访访问权限,只限在类中访问*/ |
|