繁体   English   中英

var_dump在应返回true时返回false

[英]var_dump returns false when it should return true

我有个问题。 我已经制作了一个表格,登录的用户可以注册成为摄影师。 这一切都很好。 在该页面上,我通过查看摄影师对象是否为空来检查用户是否不是摄影师。

像这样:

if(!empty($this->user->oPhotographer)){         
            $this->doRedirect('alreadyapplied');
}

现在当我在!empty($this->user->oPhotographer)上执行var_dump ,它返回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>';

当对象不为空时,这段代码应重定向到正确的页面。 var_dump仍然给出false,但不会重定向。 这是代码输出:

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] => ...
)

当摄影师实际上不空时,如何返回假?

谢谢您的帮助!!

您应该使用“ isset”,而不是“ empty”。 原因很明确。 有关更多信息: http : //php.net/manual/zh/function.isset.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM