2012-03-15 13 views
12

PHP में, मैं कक्षा स्तर पर नामस्थान का उपयोग कर रहा हूं। हालांकि, नेटबीन मुझे अपने वैश्विक कार्यों को नामस्थान बताते रहते हैं।क्या मुझे PHP में वैश्विक कार्यों का नाम देना चाहिए?

\str_replace('stuff'); 

इस एक PHP सिफारिश है, या बस Netbeans ज्यादा किया जा रहा है: उदाहरण के लिए, अगर मैं

str_replace('stuff'); 

टाइप करें और उसके Netbeans के लिए इसे बदलने का सुझाव देगा? मैं PHP दस्तावेज़ में कुछ भी नहीं ढूंढ पाया है जो किसी भी तरह से कहता है।

मैं इसे कोड में किसी भी समस्या का कारण नहीं देख सकता। हालांकि, यह नेटबैंस को अनदेखा करने के लिए गलत लगता है कि यह क्यों पहले इसे अनुशंसा करता है। लेकिन न ही यह मेरे कोडिंग अभ्यास को बदलने के लिए सही लगता है, यह जानने के बिना कि यह सही काम है।

+0

Ì ऐसी किसी भी आधिकारिक सिफारिश के बारे में पता नहीं है। क्या आप कोडिंग सम्मेलन का हिस्सा बन सकते हैं जिसका आप उपयोग कर रहे हैं? – Gordon

+0

जिस तरह से मैं इसे देखता हूं वह यह है कि यदि आप अपने कोड में नेमस्पेस का उपयोग कर रहे हैं और वैश्विक कार्यों को अन्य नेमस्पेस के भीतर से कॉल करना चाहते हैं, तो आपको शायद (शायद करना होगा) लेकिन यदि आप कहीं भी नेमस्पेस का उपयोग नहीं कर रहे हैं तो ऐसा करने में कोई बात नहीं है। – h00ligan

+0

@ h00ligan PHP मैनुअल में कुछ भी नहीं है जो ऐसा कहता है और यह निश्चित रूप से आवश्यक नहीं है क्योंकि PHP फ़ंक्शन कॉल पर वैश्विक दायरे में गिर जाएगी। – Gordon

उत्तर

5

वहाँ

में ऐसी कोई अनुशंसा नहीं है और न ही यह जब में उस नाम का कोई समारोह है वहाँ के बाद से पीएचपी वैश्विक समारोह परिभाषा पर वापस आने जाएगा वैश्विक पहचानकर्ता का उपयोग करने के लिए आवश्यक है वर्तमान नामस्थान।

इसके साथ ही कहा, केवल पहचानकर्ता जोड़ने के लिए कारण यह अधिक स्पष्ट बनाने के लिए है कि आप कोड व्यवहार में आकस्मिक परिवर्तन रोकने के लिए वास्तविक वैश्विक बात का उपयोग करना चाहते हैं जब कोई वर्तमान नाम स्थान में एक ही नाम के एक समारोह कहते है ।

आप अपने आईडीई का सुझाव क्यों देते हैं, इसके बारे में अधिक जानकारी के लिए आप Netbeans Mailing List पर पूछना चाहेंगे।

1

निश्चित रूप से अति उत्साही, लेकिन मैं PHP प्लगइन 1.17.1 के साथ नेटबीन्स 7.0.1 को पुन: उत्पन्न नहीं कर सकता। यह सम्मेलन नहीं है, वैसे भी, और मैं इसे बिल्कुल सही अभ्यास नहीं मानूंगा।

+0

अजीब - मैंने किसी भी डिफ़ॉल्ट को नहीं बदला है। सटीक संदेश 'फिक्स नाम' \ str_replace "'है। –

+0

तो, ऐसा लगता है कि यह बाद के संस्करणों की बात है। क्योंकि मेरे पास NetBeans 8.1 है - और वहां उपयोगकर्ता के रूप में @ ब्लोस्की कहते हैं। –

0

Netbeans बस नामस्थान as documented को हल करने के दस्तावेज नियमों का पालन किया जाता है नहीं:

  1. (दिनांक समय की तरह) वैश्विक कक्षाएं, पीएचपी वर्तमान नाम स्थान में उस वर्ग के लिए दिखेगा अन्यथा योग्य हो की जरूरत है।
  2. वैश्विक कार्य (जैसे array_filter) और स्थिरांक वैश्विक नामस्थान (स्पष्ट योग्यता के बिना) में पाए जाएंगे यदि वे वर्तमान नामस्थान में मौजूद नहीं हैं।

दूसरे शब्दों में, आपके कोड को दस्तावेजी नियमों के आधार पर बेवकूफ माना जाना चाहिए।

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