मैं थोड़ा आपके प्रश्न के शब्दों से उलझन में हूँ। जब आप कहते हैं कि "मैं दो अलग अलग फ़ाइलों में कार्य करने के लिए है।" क्या आपका मतलब है कि आपके पास "दो" फ़ंक्शन हैं?
आप दो कार्यों दोनों अपने $ सरणी चर का उपयोग करने की कोशिश कर है, तो आप दोनों कार्यों में global $array;
कॉल करने के लिए की आवश्यकता होगी।
इसका कारण यह है कि global
थोड़ा भ्रामक है। यह वास्तव में कर रहा है यह स्थानीय क्षेत्र में एक चर के लिए $_GLOBALS
के सदस्य को संदर्भ दे रहा है जिसका नाम $ _GLOBALS अनुक्रमणिका जैसा ही है। दूसरे शब्दों में, यदि आप कुछ इस तरह करते हैं:
$variable =& $_GLOBALS['variable']; (assign by reference)
वास्तविक चर $variable
अभी भी समारोह स्तर पर स्कोप वाला है, यह सिर्फ करने के लिए होता है: यह अनिवार्य रूप से यह कहते हुए एक ही बात है
global $variable;
एक वैश्विक चर का संदर्भ है।
इसका निहितार्थ यह है कि यदि आप प्रत्येक फ़ंक्शन में global $variable
परिभाषित नहीं करते हैं, तो आप केवल उस फ़ंक्शन के दायरे में एक नया नया चर बना रहे हैं। जब फ़ंक्शन समाप्त होता है, तो वैरिएबल अनसेट होता है और फ़ंक्शन के भीतर किए गए किसी भी बदलाव को खो दिया जाता है।
उन सभी के साथ, वैश्विक चर अभी भी एक बुरा विचार है। यह बहुत स्पष्ट है यदि आप केवल स्थानीय चर बनाए रखते हैं, और आवश्यकता होने पर इसे अन्य कार्यों के पैरामीटर के रूप में पास करते हैं।
ध्यान दें कि [ग्लोबल लगभग हमेशा खराब होते हैं] (http://c2.com/cgi/wiki?GlobalVariablesAreBad)। – outis