39、$this、self、parent详解

阅读() @2018-10-29 18:16:06

在PHP中,$this指的是实例化的对象,而不是类本身,如下代码:

class A{
	public $name;
	function __construct($x){
		$this->name = $x;
	}
	public function show(){
		echo $this->name;
	}
}
$a = new A('zym');
$a->show();//zym

在PHP中,self指的是类本身,而不是实例化的对象,如下代码:

class A{
	public $name;
	private $sex;
	protected $height;
	static $age = '23';
	function __construct($x,$y,$z){
		$this->name = $x;
		$this->sex = $y;
		$this->height = $z;
		//self::$age = $m;
	}
	private function go(){
		echo 'go';
	}
	public function show(){
		echo $this->name.'<br/>';
		echo $this->sex.'<br/>';
		echo $this->height.'<br/>';
		echo self::$age.'<br/>';
	}
	static function showAge(){
		echo 'my age is 23';
	}
	
}
$a = new A('zym','man','180cm');
echo A::$age;//23
$echo $a->age;//报错

在PHP中,子类继承父类并改写了父类中的方法,但是依然想要调用父类中的方法,就用parent,如下代码:

class A{
	public function show(){
		echo 123;
	}
}
class B extends A{
	public function show(){
		echo '456'.'<br/>';
		parent::show();
	}
}
$b = new B();
$b->show();//456   123

 

微信二维码
锐壳主机