Php var_dump应返回true时返回false

Php var_dump应返回true时返回false,php,Php,我有个问题。我已经做了一个表单,一个登录用户可以注册成为摄影师。 这非常有效。在该页面上,我通过查看摄影师对象是否为空来检查用户是否还不是摄影师 像这样: if(!empty($this->user->oPhotographer)){ $this->doRedirect('alreadyapplied'); } 现在当我在上执行变量转储时!空($this->user->opotographer) 它返回bool(false)。它不应该

我有个问题。我已经做了一个表单,一个登录用户可以注册成为摄影师。 这非常有效。在该页面上,我通过查看摄影师对象是否为空来检查用户是否还不是摄影师

像这样:

if(!empty($this->user->oPhotographer)){         
            $this->doRedirect('alreadyapplied');
}
现在当我在
上执行
变量转储时
!空($this->user->opotographer)
它返回
bool(false)
。它不应该返回这个值,它应该返回true,因为我正在测试一个有填充对象的用户

奇怪的是:

echo '<pre>'.var_dump(!empty($this->user->oPhotographer)).'</pre>';
        if(!empty($this->user->oPhotographer)){         
            $this->doRedirect('alreadyapplied');
        }

        echo '<pre>';
        var_dump(!empty($this->user->oPhotographer));
        print_r($this->user->oPhotographer);
        echo '</pre>';
当摄影师不是空的时候,它怎么会返回false呢

谢谢你的帮助

您应该使用“isset”,而不是“empty”。原因很清楚。
更多信息:

使用isset()不为空空空显式检查issetThanks!这解决了问题@GamsterKatalin你能把你的评论作为一个答案,这样这个问题就可以被标记为被接受了吗?这很奇怪,也许不公平。但我会做的D
bool(false)
bool(false)
photographer Object
(
    [table] => photographer
    [data] => 
    [className] => 
    [arFields] => Array
        (
            [id] => id
            [country] => country
            [dateofbirth] => dateofbirth
            [street] => street
            [city] => city
            [about] => about
            [dateapplied] => dateapplied
            [user_id] => user_id
            [phone] => phone
            [zip] => zip
        )

    [id] => 1
    [country] => ...
    [dateofbirth] => ...
    [street] => ...
    [city] => ...
    [about] => 
    [dateapplied] => 2013-04-28 19:41:08
    [user_id] => 15
    [phone] => ...
    [zip] => ...
)