1. 程式人生 > >PHP中的$this到底指向誰?

PHP中的$this到底指向誰?

例項程式碼:

class A {
	public function test(){
		echo '<pre>';
		var_dump($this);
		echo '</pre>';
		$this->testB();
	}
}
class B extends A {
	private $flag = 'B';
	public function testA(){
		die('testA');
	}
	public function testB(){
		$this->testA();
	}
}
$b = new B();
$b->test();

執行結果:


程式碼說明:

1、B繼承了A,所以B的例項可以訪問test方法。

2、在A中的$this此時代表的是B的例項(由執行的結果可以看出),所以在A的test方法中$this可以訪問B的testB方法(因為$this是B的例項)。

結論:

1、$this指向哪個物件例項是根據上下文來決定的,我是這樣認為的不知道是否正確。