在這個article,它提到:如何避免輸出foreach錯誤?
的foreach不支持使用抑制錯誤信息的能力 '@'。
如何避免輸出foreach
錯誤?我不希望看到:
警告:提供的foreach無效參數()
有沒有一種方法,使一個if else
判斷?
在這個article,它提到:如何避免輸出foreach錯誤?
的foreach不支持使用抑制錯誤信息的能力 '@'。
如何避免輸出foreach
錯誤?我不希望看到:
警告:提供的foreach無效參數()
有沒有一種方法,使一個if else
判斷?
的foreach檢查之前,如果變量包含數組:
if (is_array($var))
{
foreach...
}
你不需要測試數組是否爲空,如果是的話不會有任何錯誤。 – 2011-06-04 23:20:36
@Matthieu,試試吧。 – 2011-06-04 23:40:23
好的foreach在一個空的數組上不會引發錯誤。我瘋了嗎 ? '$ var = array(); ($ var爲$ elem)echo'A';'不會引發任何錯誤。 – 2011-06-04 23:50:54
前綴與(陣列)的變量是這樣的。
foreach((array) $array_thats_not_an_array as $key => $value){
echo $key . ' ' . $value;
}
我發現它更明確有一個「if」塊。 – 2011-06-04 23:12:05
如果'$ array_thats_not_an_array'將包含Object,你的代碼會做什麼?資源?如果'$ array_thats_not_an_array'包含錯誤的類型會怎麼樣?因爲算法編碼時有錯誤?錯誤將被靜音,並且將更難以找到。 – 2011-06-05 06:47:37
你絕對正確,我不會在這種情況下使用它。但他不想看到一個錯誤。 「我不希望看到警告:爲foreach()提供了無效參數」;) – 2011-06-13 17:29:40
if(!empty($array)) {
foreach($array as $a) {
// do something
}
}
你應該確認它是一個數組。如果它是空的,不會有任何錯誤,所以你不需要測試它。 – 2011-06-04 23:14:21
@Matthieu:是不是完全避免了海報所要求的錯誤? – Tom 2011-06-04 23:16:05
是的,這是我的觀點,檢查數組是否爲空是無用的,因爲即使沒有你的測試,也不會有錯誤 – 2011-06-04 23:32:00
很簡單。只是不要向'foreach'提供無效的參數。避免錯誤,而不是壓制它們。你的代碼根本不應該包含任何'@'* *。 – Tomalak 2011-06-04 23:04:22