if ($xml) {
$emailId = $xml->mail->id;
$mailPassword = $xml->mail->password;
if (!empty($emailId) && !empty($mailPassword)) {
$data['emailIdandPasswordCheck'] = 0;
}
}
这是我们检查值是否为空但是不工作的条件
此ID为空,密码不为空
但每次xml对象都带有id和密码
因为这两件事都是非空的
我可以使用什么检查来检查xml对象是否为空?
答案 0 :(得分:1)
您可以使用强制转换数组并检查条件
$emailId = (array)$emailId;
$mailPassword = (array)$mailPassword;
if (!empty($emailId) && !empty($mailPassword) ){
}
OR
$emailId = (array)$emailId;
$mailPassword = (array)$mailPassword;
if (count($emailId)==0 && count($mailPassword)==0 ){
}
答案 1 :(得分:0)
使用isset()
代替empty()
if (!isset($emailId) && !isset($mailPassword)) {
$data['emailIdandPasswordCheck'] = 0;
}
行。这是您的代码正在做的事情。
$emailId = $xml->mail->id;
如果没有值,则在$emailId
中设置null。
$mailPassword = $xml->mail->password;
如果没有值,则在$mailPassword
中设置为null。
你的情况说
if emailId is non-empty and mailPassword is non-empty
使用empty
总是告诉条件是真的。因为empty
会在true
上返回null
。
因此,使用isset
将解决问题
您可以查看comparison table了解更多信息。
答案 2 :(得分:0)
我想你想要这个:
if ($xml) {
$emailId = $xml->mail->id;
$mailPassword = $xml->mail->password;
if ( $emailId !=null && $emailId !="" && $mailPassword!=null && $mailPassword!="" ) {
$data['emailIdandPasswordCheck'] = 0;
}
}