2012-12-26 5 views
7

Jak pamiętam, zanim musiałem sprawdzić licznik ($ tablica) przed dokonaniem foreach. Od tego czasu zawsze robię to doublecheck i chciałbym wiedzieć, czy ma to teraz sens z php 5.4?Czy można bezpiecznie wywoływać foreach na pustych tablicach php w PHP 5.4?

mam ustawione error_reporting do E_ALL i wykonywany następujący skrypt:

$x = []; 

foreach($x as $y) { 
    var_dump($y); 
} 

i dostałem żadnego zawiadomienia (jak pamiętam, wcześniej, może to php5.3) byłem coraz wypowiedzenia.

Czy teraz jest bezpiecznie używać foreach na tablicy, która jest pusta?

+4

Zawsze bezpiecznie było wyliczyć pustą tablicę. Jakie zawiadomienie otrzymałeś wcześniej? Być może było to spowodowane innym problemem? – cdhowie

+0

nie, jestem pewien, pamiętam, że zwracałem uwagę na pustą tablicę O_o, nie pamiętam, że to jest tekst :( – avasin

+6

Iterowanie pustej tablicy zawsze było bezpieczne.Jeśli tablica nie istnieje lub ma wartość 'null' to jest inna historia –

Odpowiedz

14

Dopóki jest to tablica, nie ma potrzeby sprawdzania ilości elementów w nim zawartych. Po prostu pamiętaj, aby przekazać mu rzeczywisty obiekt z możliwością iteracji: na przykład nie przesyłaj go losowo ani nie przesyłaj losowo żadnych obiektów lub NULL.

Ale tak, foreach([] as $nothing) {} jest bezpieczny.

Powiązane problemy