无法重新分配$ this变量

时间:2012-06-02 16:18:37

标签: php codeigniter

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

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请求后,它将其作为参数发送:

用户名testusername

在回复中我得到了这个:

遇到PHP错误

严重性:警告

消息:缺少Register :: isUsernameAvailable()

的参数1

文件名:controllers / register.php

行号:118

遇到PHP错误

严重性:注意

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

文件名:controllers / register.php

行号:120

{ “用户名”: “NOTFOUND”}

1 个答案:

答案 0 :(得分:6)

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

在您的代码中,您有

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

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