下面的一个测试脚本中,B类中在调用A的public方法m时写错了,当做静态的方法来用了,于是A->m()中的$this被解释成了B了。
$this 究竟是谁? test.php
-
<?php
-
error_reporting(2047);
-
class A{
-
private $v = 8;
-
public function m() {
-
echo $this->v;
-
}
-
}
-
class B{
-
public function __construct() {
-
A::m();
-
}
-
}
-
-
new B();
-
-
exit;
出错信息:
PHP Notice: Undefined property: B::$v in test.php on line 6
无语…