无法重新分配变量$this


Cannot reassign $this variable

我试图弄清楚为什么我收到无法重新分配$this公共函数的错误消息是用户名可用($this->input->post('用户名)))行。我已经查看了我的代码,但找不到我无法执行此操作的原因。该函数的用途是一个带有json发送到php的postjquery函数。

public function isUsernameAvailable($username)
{
    if ($this->usersmodel->isUsernameAvailable($username))
    {
        echo '{"username":"found"}';
    }
    else
    {
        echo '{"username":"notfound"}';
    }        
}

jQuery

$('#username').blur(function(){
    $.post('register/isUsernameAvailable', {"username":$(this).val()}, function(data){if(data.username == "found"){alert('username already in use');}}, 'json');
});

有什么想法吗?

更新:

我试图找出这是否真的是PHP问题或jQuery问题。

在执行 POST 请求后,它会将其作为参数发送:

用户名

测试用户名

在回复中,我得到这个:

遇到 PHP 错误

严重性:警告

消息:注册::is用户名可用()缺少参数 1

文件名:控制器/寄存器.php

行号:118

遇到 PHP 错误

严重性:通知

消息:未定义的变量:用户名

文件名:控制器/寄存器.php

行号:120

{"用户名":"未找到"}

$this不能被覆盖,它是对您所在对象的引用。如果可以覆盖它,则会丢失对象。

在你的代码中,你有这样的行

public function isUsernameAvailable($this->input->post('username'))

这将导致第一个参数isUsernameAvailable函数的名称为 $this->input->post('username') 。这将导致函数范围内的$this将被覆盖。