अगर मैं छोरों मैं इनमें से जो सोच रहा हूँ की एक घोंसले में गहरी हूँ और अधिक कुशल है:एक PHP सरणी populating: पहले सूचकांक की जांच करें?
if (!isset($array[$key])) $array[$key] = $val;
या
$array[$key] = $val;
दूसरा रूप जहाँ तक पठनीय कोड और अधिक वांछनीय है जाता है। हकीकत में नाम लंबे हैं और सरणी बहुआयामी है। तो पहला फॉर्म मेरे कार्यक्रम में बहुत गहराई से दिख रहा है।
लेकिन मुझे आश्चर्य है कि दूसरा फॉर्म धीमा हो सकता है या नहीं। चूंकि कोड प्रोग्राम में सबसे अधिक बार निष्पादित कार्यों में से एक में है, इसलिए मैं तेज़ रूप का उपयोग करना चाहता हूं।
आम तौर पर यह कोड "$ कुंजी" के समान मूल्य के साथ कई बार निष्पादित करेगा। तो ज्यादातर मामलों में $ सरणी [$ कुंजी] पहले ही सेट हो जाएगी, और जारीकर्ता() FALSE लौटाएगा।
उन लोगों के लिए स्पष्टीकरण देने के लिए जो डरते हैं कि मैं गैर-समान कोड का इलाज कर रहा हूं जैसे कि यह समान था: जहां तक इस कार्यक्रम का हिस्सा है, $ वैल स्थिर है। यह रन-टाइम तक ज्ञात नहीं है, लेकिन यह प्रोग्राम में पहले सेट है और यहां नहीं बदला है। तो दोनों रूप एक ही परिणाम उत्पन्न करते हैं। और यह $ वैल्यू पाने के लिए सबसे सुविधाजनक जगह है।
पीएचपी मैनुअल का कहना है कि "isset()" एक "भाषा निर्माण", नहीं एक समारोह है । तो मुझे उम्मीद है कि ओवरहेड वास्तव में न्यूनतम हो सकता है। मान लीजिए मुझे इसे प्रोफाइल करना होगा और देखेंगे। –