2012-12-26 16 views
7

जैसा कि मुझे याद है, इससे पहले कि मुझे हमेशा एक foreach बनाने से पहले गिनती ($ सरणी) की जांच करनी पड़े। उस समय से मैं हमेशा यह डबल चेक करता हूं, और जानना चाहता था, क्या यह आज php 5.4 के साथ समझ में आता है?PHP 5.4 में खाली php arrays पर foreach को कॉल करना सुरक्षित है?

मैं E_ALL को error_reporting निर्धारित किया है और मार डाला स्क्रिप्ट निम्नलिखित:

$x = []; 

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

और कोई नोटिस मिला है (जैसा कि मुझे याद है, पहले से, शायद यह php5.3 था) मैं नोटिस हो रही थी।

क्या यह अब सरणी पर foreach का उपयोग कर सुरक्षित है, यह खाली है?

+4

एक खाली सरणी को गिनने के लिए हमेशा सुरक्षित था। आपको पहले क्या नोटिस मिला? शायद यह किसी अन्य मुद्दे के कारण था? – cdhowie

+0

नहीं, मुझे यकीन है, मुझे याद है कि मुझे रिक्त सरणी ओ_ओ के बारे में कुछ नोटिस मिल रहा था, इसे याद रखें :( – avasin

+6

एक रिक्त सरणी को इटरेट करना हमेशा सुरक्षित रहा है। अगर सरणी मौजूद नहीं है या 'शून्य' है हालांकि, यह एक और कहानी है। –

उत्तर

14

जब तक यह एक सरणी है, इसमें वस्तुओं की मात्रा की जांच करने की आवश्यकता नहीं है। बस इसे एक वास्तविक पुनरावर्तनीय वस्तु को पास करना सुनिश्चित करें: उदाहरण के लिए, इसे यादृच्छिक वस्तुओं या NULL पास न करें।

लेकिन हाँ, foreach([] as $nothing) {} सुरक्षित है।

संबंधित मुद्दे