如何在php中检查xml对象是否为空

时间:2014-01-21 07:17:31

标签: php xml

if ($xml) {
    $emailId            = $xml->mail->id;
    $mailPassword       = $xml->mail->password;
    if (!empty($emailId) && !empty($mailPassword)) {
        $data['emailIdandPasswordCheck']    = 0;
    }
}

这是我们检查值是否为空但是不工作的条件 此ID为空,密码不为空 但每次xml对象都带有id和密码
因为这两件事都是非空的 我可以使用什么检查来检查xml对象是否为空?

3 个答案:

答案 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;
        }
    }