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

时间:2012-08-07 15:57:50

标签: php

  

可能重复:
  Can't use method return value in write context

我有时会遇到此错误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));
}

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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