2014-10-31 58 views
0

由於某種奇怪的原因,我的第一個case語句的值顯示兩次,並且沒有switch語句顯示一次。爲什麼在使用開關陳述時該值顯示兩次

例如我有以下的陣列分配給$validationErrors

array(
[0] =>'Please select a Expiration Month' 
[1] =>'Please select a Expiration Year' 
['Name'] => 'This name is required' 
['Phone'] => 'This Phone is required' 
['Email'] => 'This Email is required' 
['Credit Card Number'] => 'This Credit Card Number is required' 
) 

下面是我一個用我的foreach循環...

foreach ($validationErrors as $key => $error) { 



    switch ($key) { 

     case "Email": 
      echo "email is empty!"; 
      break; 


     case "Name": 
      echo "Name is empty!"; 
      break; 


    } 

當我提交表單,並取回一個錯誤數組我看到「電子郵件是空的!電子郵件是空的!」 然後「名稱爲空!」只顯示一次。

關於爲什麼發生這種情況的任何想法?任何幫助將非常感激!

+1

的var_dump($ validationErrors) – Naruto 2014-10-31 15:46:05

+0

@Naruto我已經做的是,它的關鍵=> $錯誤只顯示一次。我發佈的數組是$ validationErrors的var_dump – 2014-10-31 15:50:33

+0

另外,爲什麼在數組中有文本時使用開關?只是'echo $ error;'。 – AbraCadaver 2014-10-31 15:51:14

回答

4

交換機使用鬆散類型的比較,以及鬆散類型的0 == "Email"

+0

馬克。非常感謝回覆。這現在有很多意義。我已經將數組更改爲僅使用鍵值對,並且現在可以工作。 – 2014-10-31 16:04:58