实例代码:
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指向哪个对象实例是根据上下文来决定的,我是这样认为的不知道是否正确。