मैं पिछले डेवलपर द्वारा किए गए कुछ कोड के माध्यम से काम कर रहा हूं। मैं PHP के लिए काफी नया हूं इसलिए मैं सोच रहा हूं कि इस समस्या के लिए कोई ज्ञात पैटर्न या समाधान है या नहीं।PHP सरणी और 'अपरिभाषित सूचकांक' त्रुटियों का समाधान
असल में मूल लेखक किसी भी सरणी अनुक्रमणिका को जांचने से पहले जांच नहीं करता है। मुझे पता है कि मैं इसे इस्तेमाल करने से पहले प्रत्येक को जांचने के लिए जारीकर्ता() का उपयोग कर सकता हूं, लेकिन अभी सैकड़ों लाइनें हैं जहां ये त्रुटियां दिखाई दे रही हैं। इससे पहले कि मैं कुछ संगीत डालूं और अपने कीबोर्ड में अपने सिर को झुकाव शुरू कर दूं, मैं यह सुनिश्चित करना चाहता हूं कि इसे संभालने के लिए कुछ अच्छा शॉर्टकट नहीं है।
/* snip */
"text" => $link . $top_pick_marker . $output['author'] . " " . " " .
$output['new_icon'] . $output['rec_labels'] . " "
. $output['admin_link']
. $output['alternate_title']
. $output['access_info']
. $output['description']
. $output['url']
. $output['subject_terms']
. $output['form_subdivisions']
. $output['dates_of_coverage']
. $output['update_frequency']
. $output['place_terms'],
/* snip */
तो मैं जानता हूँ कि मैं isset() यहाँ प्रत्येक आइटम के लिए उपयोग कर सकते हैं: यहाँ मैं देख रहा हूँ कोड का एक विशिष्ट खंड है। मुझे चीजों को थोड़ा पुनर्व्यवस्थित करना होगा और अब सभी समेकन को हटा देना होगा। क्या ऐसा करने का कोई और आसान तरीका है या क्या मैं बस इसके साथ अटक गया हूं?
+1 - यह वास्तव में एक अच्छा सवाल है। PHP के "पुराने दिनों" में, इन E_NOTICE त्रुटियों को नहीं फेंक दिया गया था, और अनियंत्रित सरणी अनुक्रमणिका का संदर्भ देना बहुत आम था। जाहिर है यह एक बुरी आदत है, लेकिन PHP के ढीले टाइपिंग के साथ करना आसान है। E_NOTICES अब आपके कोड को कसने में मदद करने के लिए एक अच्छा टूल है। हालांकि, मुझे सरणी को शामिल करने वाले सभी चेकों पर 'isset()' या 'खाली()' को कॉल करने के लिए सरासर टेडियम मिलता है। – zombat