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

這是我們正在檢查的值都爲空或不是一個條件,但它不工作
此ID爲空,密碼不爲空。
但每次xml對象都會出現在id和密碼
因爲這兩件事情都是非空的。
什麼檢查我可以用來檢查XML對象是否爲空?如何檢查XML對象爲空或不在PHP

回答

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){ 

} 
+0

你的答案是好的,但我發現最好的我的代碼的方式就像我們必須在$ xml-> mail-> id和$ xml-> mail-> password之前添加(字符串),這會將xml對象更改爲字符串。所以這將是最好的方式。 – Shivam

0

使用isset()代替empty()

if (!isset($emailId) && !isset($mailPassword)) { 
    $data['emailIdandPasswordCheck'] = 0; 
} 

確定。這是你的代碼在做什麼。

$emailId   = $xml->mail->id; 

如果沒有值,則在$emailId中設置爲空。

$mailPassword  = $xml->mail->password; 

如果沒有值,則在$mailPassword中設置爲空。

而且你的病情說

if emailId is non-empty and mailPassword is non-empty 

而且使用empty總是告訴條件爲真。因爲emptynull上返回true。 因此改爲使用isset將解決該問題。
你可以看到comparison table瞭解更多信息。

0

我想你想要這樣的:

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