在这个例子中,我得到致命错误“致命错误:在不在对象上下文中时使用$ this”
class ctis_parent{
public function objFunc(){
var_dump('Called succes');
}
public static function call(){
$this->objFunc();
}
public function __construct(){
self::call();
}
}
new ctis_parent();
但是如果从call()方法的定义中删除static关键字一切正常,为什么?
class ctis_parent{
public function objFunc(){
var_dump('Called succes');
}
public function call(){
$this->objFunc();
}
public function __construct(){
self::call();
}
}
new ctis_parent();
//string 'Called succes' (length=13)
答案 0 :(得分:1)
根据定义,静态函数不需要实例化类,因此它无法访问指向当前实例的$this->
引用。如果实例不存在,则无法指向它。说得通。
答案 1 :(得分:0)