Php 致命错误:不在对象上下文中使用$this。。。在线7
我已经搜索了stackexchange,但一切都表明我所做的是正确的。第7行是Php 致命错误:不在对象上下文中使用$this。。。在线7,php,Php,我已经搜索了stackexchange,但一切都表明我所做的是正确的。第7行是$captchacode=$this->createCaptcha() 您不能在静态函数中使用$this。您正在以静态方式调用该方法: echo Problem::createForm(); ^^^^^^^^^^^^^^^^^^^^^---static call $此在“静态模式”下不可用 如果你有 $problem->createForm(); 相反,这是对象调用方法,那么它将按预期工作 publ
$captchacode=$this->createCaptcha()代码>
您不能在静态函数中使用$this
。您正在以静态方式调用该方法:
echo Problem::createForm();
^^^^^^^^^^^^^^^^^^^^^---static call
$此
在“静态模式”下不可用
如果你有
$problem->createForm();
相反,这是对象调用方法,那么它将按预期工作
public function createForm(){
return self::createCaptcha();
}
改为试试这个函数声明为static,我已经更新了代码。我仍然得到了相同的错误,加上严格的标准:非静态方法问题::createForm()不应该静态调用。。。在第22行
我仍然得到相同的错误加上这个错误,严格标准:非静态方法问题::createForm()不应该静态调用。。。第22行
请解释原因?这有助于理解。@Digital_Reality:self:…
是访问静态(可能是继承的)方法的机制。OP以static
code开始,这是继续该路径的一种方法。@abiessu同意。。但我的全部观点是答案应该有自己的解释。@Digital_Reality:好的观点,尽管在回答者没有给出好的解释的情况下,我们可以选择不对答案投票,并在评论中给出好的解释。。。
public function createForm(){
return self::createCaptcha();
}