यहां तक कि आधिकारिक दस्तावेज हमें यह बताते थे कि PHP "लघु टैग" ( <? /*...*/ ?>
) "खराब" हैं हालांकि, PHP 5.4 के बाद से, echo
विविधता <?= /*...*/ ?>
को short_open_tag
सेटिंग की परवाह किए बिना स्थायी रूप से सक्षम किया गया है ।
क्या बदल गया है?
यहां तक कि अगर वे पहले से अप्रत्याशित प्रकृति की वजह से पूरी तरह निराश हो गए हों कि क्या साझा किए गए होस्टिंग प्लेटफ़ॉर्म पर short_open_tag
सक्षम है, तो निश्चित रूप से यह तर्क दूर नहीं जाता क्योंकि मेजबान के कुछ सबसेट PHP 5.4 चलेंगे?
बेशक भाषा में यह बदलाव स्वाभाविक रूप से सिफारिश में बदलाव को इंगित नहीं करता है कि हमें "कम टैग" से बचने चाहिए, लेकिन अगर वे परेशान हो गए तो निश्चित रूप से PHP देवों की तरह ऐसा लगता होगा कि वे उन्हें "नफरत" न करें बहुत। सही?
इस समय मैं केवल तार्किक निष्कर्ष निकालना चाहता हूं कि PHP 5.4 में इस परिवर्तन को लागू करने के लिए कुछ उद्देश्य तर्क होना चाहिए।
यह क्या है?
छोटे खुले टैग हमेशा PHP 5.4 के बाद से सक्षम नहीं होते हैं। दस्तावेज़ संक्षिप्त इको टैग्स के बारे में बात करता है जो एक अलग बात है (छोटे खुले टैग <?
शैली टैग हैं, छोटे गूंज टैग <?=
ईको-आईएनजी के लिए शैली टैग हैं)।
तो फिर वे डिफ़ॉल्ट रूप से अब क्यों सक्षम हैं? ठीक है, वहाँ बहुत सारी स्क्रिप्ट हैं, जहां <?= $somevar ?>
<?php echo $somevar ?>
<?= $somevar ?>
<?php echo $somevar ?>
का उपयोग करने के लिए लाभ मिलता है <?php echo $somevar ?>
और क्योंकि छोटे गूंज टैग छोटे खुले टैग के रूप में खराब नहीं होते हैं, इसलिए वे हमेशा छोटे इको टैग को सक्षम करने के लिए चुना करते थे । क्योंकि अब डेवलपर्स (चौखटे और सीएमएस -एस के) उन पर भरोसा कर सकते हैं (या बल्कि, जब PHP 5.4 मुख्य धारा बन जाता है)
हालांकि, छोटे खुले टैग अभी भी आपके php.ini में short_open_tag
सेटिंग से प्रभावित हैं।
केवल कम गूंज टैग ( <?=
) स्थायी रूप से सक्षम है, छोटे खुले टैग नहीं ( <?
) इसका कारण यह है कि जब आप HTML टेम्पलेट्स (या कोई अन्य दृश्य टेम्प्लेट) बनाते हैं तो कम इको टैग वास्तव में आसान होता है और इसके बिना आपको बहुत कुछ लिखना पड़ता है (जैसे <?php echo $var; ?>
बजाय <?= $var ?>
)
नोट: PHP 5.4 से आरंभ, लघु इको टैग <?=
हमेशा short_open_tag सेटिंग की परवाह किए बिना, मान्यता प्राप्त और मान्य है।
यह सब क्या कह रहा है, कि <?=
हमेशा मान्य है, और नहीं <?
इसका कारण यह है कि < ?
XML दस्तावेज़ों में उपयोग किया जाता है और short_open_tags को सक्षम करने से XML कोड में त्रुटियां उत्पन्न होंगी। लेकिन, < ?=
, बस < ?php
XML ओपन टैग नहीं है और उपयोग करने के लिए सुरक्षित है