Php 致命错误:不在对象上下文中使用$this。。。在线7

Php 致命错误:不在对象上下文中使用$this。。。在线7,php,Php,我已经搜索了stackexchange,但一切都表明我所做的是正确的。第7行是$captchacode=$this->createCaptcha() 您不能在静态函数中使用$this。您正在以静态方式调用该方法: echo Problem::createForm(); ^^^^^^^^^^^^^^^^^^^^^---static call $此在“静态模式”下不可用 如果你有 $problem->createForm(); 相反,这是对象调用方法,那么它将按预期工作 publ

我已经搜索了stackexchange,但一切都表明我所做的是正确的。第7行是
$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();
 }