PHP फ़ाइलों पर टैग (>?) बंद करना


17

कुछ लोग अपनी PHP फ़ाइलों को बंद करके शपथ लेते हैं ?>, तो कुछ का कहना है कि इसे छोड़ने के लिए यह अधिक अनुकूलित है।

मुझे पता है कि यह वहाँ पर होना आवश्यक नहीं है, मैं बस सोच रहा हूँ कि पेशेवरों और विपक्ष यह क्या कर रहे हैं, और सबसे अच्छा अभ्यास क्या है।



कुछ लोग मान रहे हैं कि वाक्यांश "अधिक अनुकूलित" का मतलब था "तेजी से चलेगा।" स्पीकर (जिसकी पहली भाषा अंग्रेजी नहीं हो सकती है) का इरादा कुछ और हो सकता है जैसे "अधिक इष्टतम" या "बेहतर अभ्यास।"
स्कॉट सी विल्सन

जवाबों:


27

यह प्रदर्शन का मामला नहीं है - अनुगामी ?>को पार्स करना तुच्छ है और जब तक आप प्रति सेकंड एक मिलियन फ़ाइलों को शामिल नहीं करते, तब तक कोई भी ध्यान देने योग्य अंतर नहीं होगा।

IIRC, php.net की सलाह है कि इसे न जोड़ें ?>, और कारण कुछ इस तरह हैं:

  • यह अनावश्यक है
  • गलती ?>से क्लाइंट के बाद महत्वपूर्ण व्हाट्सएप जोड़ना आसान है , जो क्लाइंट के लिए आउटपुट होगा, जिसके परिणामस्वरूप अस्पष्ट हेडर पहले से भेजी गई त्रुटियां हो सकती हैं (यह तब होता है जब एक सम्मिलित फ़ाइल में व्हाट्सएप शामिल होता है, और आप एक हेडर सेट करने की कोशिश करते हैं। उस फ़ाइल सहित)

यहां जवाबों के आधार पर (विशेष रूप से खाली अवांछित व्हाट्सएप के कारण "हेडर पहले से ही" त्रुटियां भेजा गया), मैंने PHP फ़ाइल के अंत में धार्मिक रूप से अपनी आदत को बदल दिया है?> मैंने देखा कि जब मैंने PHPStorm के साथ एक नई फ़ाइल बनाई थी, तो टेम्प्लेट में टैग के बिना <? Php; को बंद किया गया था, और यह सिर्फ मैला कोडिंग था। अब मैं बेहतर जानता हूं।
tcrosley

यह सटीक कारण - "हेडर पहले से ही भेजा गया" - यही कारण था कि यह मेरे नियोक्ता (एक बड़ा वेब पोर्टल) द्वारा कड़ाई से मना किया गया है। यह एक बात है जब आप इसे एक फ़ाइल के अंत में भूल जाते हैं जो आपने अभी लिखा था। यह एक और है यदि आप एक पुस्तकालय प्रविष्टि को संपादित करते हैं जो 3 है, जिसमें गहरी शामिल है, आपका पाठ संपादक आपके बिना जाने बिना व्हाट्सएप सम्मिलित करता है, और अचानक पोर्टल 2 लोगों द्वारा चलाए गए पोर्टल का एक टुकड़ा काम करना बंद कर देता है। के पेड़ में प्रायः 100+ फाइलें होती हैं, जो बग को धैर्य में रखने का अभ्यास करता है। "गहरी कृतज्ञता" की यात्रा के हफ्तों के बाद उम्मीद करें कि बग मिल गया है और आपके पास वापस आ गया है।
एसएफ।

1
समापन टैग के बाद सफेद स्थान भेजने वाला PHP अभी तक खराब भाषा के निर्णयों का एक और उदाहरण है।
user949300

12

नहीं, वे गलत हैं।

?>फ़ाइल के अंत में PHP में वैकल्पिक है। और आपको इसका अच्छा कारण मिलेगा। सबसे महत्वपूर्ण यह है कि किसी फ़ाइल के अंत में एक खाली स्थान आपको हेडर भेजने से नहीं रोकेगा। यह स्पॉट करने के लिए एक कठिन बग है क्योंकि आप इसे किसी भी फ़ाइल में कहीं भी पा सकते हैं।

जब PHP को HTML के साथ मिलाया जाता है और शुद्ध PHP फ़ाइलों के लिए नहीं डाला जाता है, तो ऐसा करने का सामान्य तरीका समापन टैग लगा रहा है। यह ZEND फ्रेमवर्क और कई अन्य लोगों से भी एक कोडिंग मानक है ।

अनुकूलित का मतलब है कि कोड तेजी से चलता है। उन्हें गलत साबित करना आसान है। कोड को प्रोफाइल करें और पता करें कि वे आपको बकवास बता रहे हैं।


4

मुझे लगता है कि इसे जोड़ने से बचने के लिए न्यूबॉकों की सिफारिश की जाती है ताकि वे गलती से अतिरिक्त न्यूलाइन चार्ट न भेजें। चूँकि जैसा आपने उल्लेख किया है, वैसा होना आवश्यक नहीं है, मुझे लगता है कि सामान्य तर्क यह है कि गलतियों से बचने के लिए इसे छोड़ दें।

मुझे नहीं लगता कि इसके साथ कोई "अनुकूलन" शामिल है।

मैं आपको यहाँ इंगित करूँगा: /programming/4410704/php-closing-tag और यहाँ: /programming/3219383/why-do-some-scri-omit-the -closing-php-टैग


1
newbies या नहीं ... कोई कारण नहीं है (OCD मामलों को छोड़कर) उनके पास है
Mchl

@ मैक्कल मैं यह बताना चाहूंगा कि बंद छोड़ने के कारण काफी तुच्छ हैं और अंत में यह सिर्फ प्रोग्रामर की प्राथमिकता में आता है और इसका वास्तव में एक ओसीडी मुद्दा नहीं है ...
केनेथ

1
मैं कभी भी मैं ?>शुद्ध PHP युक्त फ़ाइलों में देखते हैं cringe ।
कैफीनयुक्त एविएटर

@ केनेथ: यदि वे तुच्छ हैं - मैं उन्हें नहीं देख सकता। ओसीडी वाला हिस्सा एक मजाक के रूप में था।
Mchl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.