无法重新分配$ this变量

Jef*_*son 1 php codeigniter

我试图找出为什么我得到一个无法重新分配$ this错误消息的公共函数isUsernameAvailable($ this-> input-> post('username'))行.我查看了我的代码,找不到为什么我不能这样做的原因.该函数用于将json发送到php的post jquery函数.

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

jQuery的

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

有任何想法吗?

更新:

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

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

用户名testusername

在回复中,我得到了这个:

遇到PHP错误

严重性:警告

消息:Register :: isUsernameAvailable()缺少参数1

文件名:controllers/register.php

行号:118

遇到PHP错误

严重性:注意

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

文件名:controllers/register.php

行号:120

{ "用户名": "NOTFOUND"}

cle*_*ort 6

$this 无法覆盖,它是对您所在对象的引用.如果您可以覆盖它,您将丢失该对象.

在你的代码中,你有这条线

public function isUsernameAvailable($this->input->post('username'))
Run Code Online (Sandbox Code Playgroud)

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