35、PHP面向对象的public、private、protected之间的区别

阅读() @2019-05-12 11:46:33

PHP面向对象的public、private、protected之间的区别:

public:本类、子类、实例化对象都可以调用;

protected:本类和子类可以执行,实例化对象不可以直接调用,需要在执行public函数调用;

private:只能在本类执行,子类与实例化对象都不可以调用。

class A{
	public $name;
	public $age;
	private $height;
	protected $sex;
	function __construct($x,$y,$z,$m){
		$this->name = $x;
		$this->age = $y;
		$this->height = $z;
		$this->sex = $m;
	}
	public function show(){
		echo $this->name.'<br/>';
		echo $this->age.'<br/>';
		echo $this->height.'<br/>';
		echo $this->sex.'<br/>';
		$this->walk();
	}
	private function walk(){
		echo '跑步';
	}
	protected function eat(){
		echo '吃饭';
	}
}
$a = new A('zym','23','180cm','男');
$a->show();//可以执行
//echo $a->sex;//无法访问
//echo $a->height;//无法访问

class B extends A{
	public function go(){
		$this->walk();
	}
	public function to(){
		$this->eat();
	}
}
$b = new B('zyy','20','175cm','女');
$b->show();//可以执行
echo $b->name;//可以访问到
//echo $b->height;//无法访问到
//echo $b->sex;//无法访问到
//$b->go();//无法访问到
$b->to();//可以访问到
微信二维码
锐壳主机