B.php:
class B extends A {
function foo() {
$this->get['id'];
}
}
C.php:
namespace NAME;
class C extends B {
function foo() {
$b = new 'B();
$b->get['id'] = $params['userToken'];
}
}
以上有效,但是如何访问$this而不是创建一个新的B
实例?
如果我尝试像这样访问它:
namespace NAME;
class C extends B {
function foo() {
$this->get['id'] = $params['userToken'];
}
}
它返回错误:Using $this when not in object context
. $this 是protected
但因为它 C 正在扩展 B,它不应该引起问题,如果它这样做,不应该返回该错误。
你的最后一段代码就可以了,但是当你使用 call_user_func()
调用一个使用 $this
的方法时,你需要传递一个实例而不是类名,即
call_user_func([new C, 'foo']);