मैं हाल ही में काम पर एक आवेदन वास्तुकार पूछा एक php
स्क्रिप्ट मैं कुछ काम मैं हमारे सहायता डेस्क विभाग में साप्ताहिक कर स्वचालित करने के लिए लिखा था की समीक्षा करें।ऐसा क्यों है पाश के लिए एक की हालत में एक समारोह कॉल करने के लिए बुरा है?
अपनी समीक्षा में वह
## Loops
Your loops are good, you didn't do anything bad like calling functions in the condition
for ($i=0; $i < count($array); $i++); is BAD
ईमानदारी से कहा गया है, मुझे लगता है कि इससे पहले कि लेकिन मेरे कोड में इसे बनाया करने के लिए परीक्षा की गई कभी नहीं किया है मुझे आश्चर्य है कि यह बुरा क्यों होगा।
मुझे लगता है, क्योंकि एक समारोह का परिणाम सब पर किसी भी मूल्य हो सकता है यह है और यह एक बढ़िया तरीका अनंत लूप और सिर्फ सामान्य कारण अनपेक्षित व्यवहार बनाने के लिए की तरह लगता है।
मैं googling की कोशिश की, लेकिन किसी भी प्रासंगिक परिणाम नहीं मिल सकता है तो मैं आप से पूछना:
ऐसा क्यों है पाश के लिए एक की हालत में एक समारोह कॉल करने के लिए बुरा है?
नोट टिप्पणी अपने आप में count($array)
, एक गिम्मी मेरे लिए, है। बेशक, आप बस इसे कैश करना चाहते हैं। अधिक विशेष रूप से, मेरा मतलब है कि अन्य जटिल कार्यों का उपयोग करने के संदर्भ में।
उन है कि निश्चित रूप से आश्चर्य होगा, वह सुपर व्यस्त है और पहले से ही मेरी मदद करने के लिए समय लगा "क्यों नहीं सिर्फ पुरुष जिसने लिखा यह पूछते हैं", मैं पुश करने के लिए है कि के साथ बहुत दूर "अब नहीं करना चाहते , क्या आप कृपया मेरी सभी टिप्पणियों को समझा सकते हैं? "
कारण प्रत्येक लूप पुनरावृत्ति पर बार-बार बुलाया जाता है, नहीं? –
मुझे यकीन नहीं है कि यह ऑफटॉप है और कोडरेव्यू पर बेहतर है। वैसे भी, इसका कारण यह है कि आप लूप के प्रत्येक पुनरावृत्ति पर फ़ंक्शन को कॉल करेंगे, अतिरिक्त ओवरहेड यह लाता है। बस लूप के बाहर गिनती() परिणाम संग्रहित करें और चर –
का उपयोग करें, मेरी राय के लिए इसे टालने का एकमात्र कारण यह तथ्य है कि उदा। _count ($ array) _ को _for_ प्रदर्शन के हर बार मूल्यांकन किया जाना चाहिए, जबकि स्पष्ट रूप से इसका मूल्यांकन केवल लूप के बाहर किए जाने पर ही किया जाएगा। – hherger