“在写入上下文中不能使用方法返回值”的含义

可能重复:
在写入上下文中不能使用方法返回值

我有时遇到此错误Can't use method return value in write context 。 但是,我不知道WRITE CONTEXT在这句话中意味着什么。 有人能告诉我一个一般的解释。

谢谢。

如果你想引用这个错误的代码是在线if(empty($this->loadUser()))然而,只是为了澄清,我只想找出“写上下文”的含义:

public function verify()
{
    if(empty($this->loadUser()))
        $this->addError('username','Incorrect username.');
    else
    {
        $user = $this->loadUser();
        $project = $this->loadProject($pid);

        $project->associateUserToProject($this->loadUser());
        $project->associateUserToRole($this->role, $this->user->id)

    }
}

public function loadUser() {
    return User::model()->findByAttributes(array('username'=>$this->username));
}

empty()真的不是一个函数。 如果你愿意,它是一个构造或宏。 这意味着你不能将一个对象作为参数传递给它。 只是纯粹的变量。

$is_use = $this->loadUser();
if (empty ($is_use))
{
   ...
}

empty仅将变量作为参数。 empty() only checks variables as anything else will result in a parse error.

http://php.net/manual/en/function.empty.php

链接地址: http://www.djcxy.com/p/58431.html

上一篇: Meaning of "Can't use method return value in write context"

下一篇: Incorrect information in file: './database