[英]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.