क्या PHP के लघु टैग उपयोग करने के लिए स्वीकार्य हैं?


522

यहाँ आधिकारिक प्रलेखन के अनुसार जानकारी है :

टैग खोलने और बंद करने के चार अलग-अलग जोड़े हैं जिनका उपयोग PHP में किया जा सकता है। उनमें से दो, <?php ?> और <script language="php"> </script>, हमेशा उपलब्ध हैं। अन्य दो लघु टैग और एएसपी शैली टैग हैं, और php.ini कॉन्फ़िगरेशन फ़ाइल से चालू और बंद किया जा सकता है। जैसे, जबकि कुछ लोगों को लघु टैग और एएसपी शैली के टैग सुविधाजनक लगते हैं, वे कम पोर्टेबल होते हैं, और आमतौर पर अनुशंसित नहीं होते हैं

मेरे अनुभव में सबसे सर्वर है लघु टैग सक्षम। टाइपिंग

<?=

टाइपिंग की तुलना में कहीं अधिक सुविधाजनक है

<?php echo 

प्रोग्रामर सुविधा एक महत्वपूर्ण कारक है, इसलिए उन्हें अनुशंसित क्यों नहीं किया जाता है?


61
whyभाग का जवाब देने के लिए , मैं Zend PHP 5 प्रमाणन मार्गदर्शिका को उद्धृत करूंगा: "लघु टैग एक समय के लिए थे, PHP दुनिया में मानक; हालांकि, उनके पास XML हेडर के साथ संघर्ष करने का प्रमुख दोष है और इसलिए, कुछ हद तक है रास्ते से गिर गया। ”
शराबी

7
उपयोग का मामला क्या है जहां यह मुद्दा सामने आता है, क्या इसका मतलब यह है कि डेवलपर्स के लिए एक दर्द है कि XML का उपयोग करके XML उत्पन्न करें?
जॉन जेड

9
मान लें कि आपके पास ऐसे XML दस्तावेज़ हैं, जिन्हें आप सार्वजनिक करना चाहते हैं, लेकिन आप चाहते हैं कि दस्तावेज़ आपके द्वारा बनाए गए किसी भी कारण से php पार्स करने योग्य हों। अपने ब्राउज़र द्वारा .xml पार्स करने योग्य बनाएं। आप छोटे टैग का उपयोग करते हैं ताकि वे चालू हों, और अचानक XML दस्तावेज़ XML हेडर के माध्यम से पार्स हो रहा है, चीजों को तोड़ रहा है। मुझे पागल हो यह पता लगाने की कोशिश कर बहुत पहले। जब से मेरे द्वारा चलाए गए किसी भी सर्वर पर शॉर्ट कोड को निष्क्रिय कर दिया गया है और मैंने जिस किसी भी टीम के साथ काम किया है, उसे
तत्कालीन दलाल

43
PHP 5.4.0 से short_open_tag निर्देश में लघु इको टैग शामिल नहीं है <?= $example;?> ! यह बहुत महत्वपूर्ण है क्योंकि अन्य सभी छोटे टैगों का उपयोग निरर्थक माना जाता है। वैसे भी शॉर्ट इको टैग के उपयोग को अभी से प्रोत्साहित किया जाता है। यह एक चिकनी और tidier कोड-बेस - esp के लिए प्रदान करता है। फ़ाइलों को देखने में। तो PHP के लिए = = 5.4.0 <?= ?> का उपयोग बिना सेटिंग के किया जा सकता है short_open_tag। कृपया अपने कोड में अन्य लघु टैग का उपयोग न करें। जब आप ऐसा करते हैं तो कोड-देवताओं को बहुत गुस्सा आता है ...
बोरिसलाव सबव

6
मैं इसे एक त्वरित टिप्पणी के रूप में जोड़ने जा रहा हूं, क्योंकि पहले से ही बहुत लंबे उत्तर हैं: उद्घाटन घोषणा के लिए एक्सएमएल में <?केवल उपयोग किया जाता है <?xml version="1.0" ?>; यह "प्रसंस्करण निर्देश" के लिए सामान्य वाक्यविन्यास है, दूसरा सबसे आम उदाहरण है <?xml-stylesheet ... ?><?phpवास्तव में एक वैध प्रसंस्करण निर्देश माना जा सकता है, जैसा कि <?=(5.4+ में अनुमति है), लेकिन पूरे के <?साथ-साथ दावा करना वाक्यविन्यास के बीच अनावश्यक संघर्ष पैदा करता है।
IMSoP

जवाबों:


374

वे अनुशंसित नहीं हैं क्योंकि यह एक PITA है यदि आपको कभी अपना कोड किसी ऐसे सर्वर पर ले जाना है जहाँ यह समर्थित नहीं है (और आप इसे सक्षम नहीं कर सकते हैं)। तुम कहो, साझा सेनाओं के बहुत सारे करने के समर्थन shorttags लेकिन "बहुत सारे" नहीं है उन सभी को। यदि आप अपनी स्क्रिप्ट साझा करना चाहते हैं, तो पूर्ण सिंटैक्स का उपयोग करना सबसे अच्छा है।

मैं मानता हूँ कि <?और <?=से प्रोग्रामर पर आसान कर रहे हैं <?phpऔर <?php echoलेकिन यह जब तक आप एक ही रूप हर बार का उपयोग करें (और रिक्त स्थान (जैसे में चक नहीं है एक थोक ढूंढें और की जगह करने के लिए संभव है: <? phpया <? =)

मैं पठनीयता को एक कारण के रूप में नहीं खरीदता। अधिकांश गंभीर डेवलपर्स के पास उनके लिए उपलब्ध सिंटैक्स हाइलाइटिंग का विकल्प है।

टिप्पणियों में ThiefMaster का उल्लेख है, PHP 5.4 के रूप में, <?= ... ?>टैग्स को शॉर्टटैग सेटिंग्स की परवाह किए बिना, हर जगह समर्थन किया जाता है । इसका मतलब यह होना चाहिए कि वे पोर्टेबल कोड में उपयोग करने के लिए सुरक्षित हैं लेकिन इसका मतलब है कि PHP 5.4+ पर निर्भरता है। यदि आप पूर्व 5.4 का समर्थन करना चाहते हैं और शॉर्टटैग की गारंटी नहीं दे सकते हैं, तो आपको अभी भी उपयोग करने की आवश्यकता होगी <?php echo ... ?>

इसके अलावा, आपको यह जानना होगा कि PHP 7 से ASP टैग <%,%>, <% =, और स्क्रिप्ट टैग हटा दिए जाते हैं । इसलिए यदि आप लंबे समय तक पोर्टेबल कोड का समर्थन करना चाहते हैं और सबसे आधुनिक उपकरणों पर स्विच करना चाहते हैं, तो कोड के उन हिस्सों को बदलने पर विचार करें।


91
तो, स्पष्टीकरण है: वे खराब हैं क्योंकि वे समर्थित नहीं हैं? लेकिन उन्हें समर्थन क्यों नहीं दिया जाता है? क्योंकि वे विनिर्देशन का हिस्सा नहीं हैं? ठीक है, लेकिन वे विनिर्देशन का हिस्सा क्यों नहीं हैं? मैं इस जवाब से थोड़ा निराश हूं।
जोसेफ सेबल

61
मैं यहां "बड़े सवालों" पर चर्चा करने के लिए नहीं हूं जैसे हम यहां क्यों हैं, यह सब कैसे शुरू हुआ, आदि साझा सर्वर पर शॉर्टटैग समर्थन की गारंटी नहीं है और इसे पूरी तरह से अगले प्रमुख संस्करण से हटाया जा रहा है। बस आपको इतना ही पता होना चाहिए।
ओली

39
अनिवार्य पीएचपी है एक टेम्पलेट इंजन। : P
सिंटेक्स एरर

49
लघु टैग को चरणबद्ध नहीं किया जा रहा है। केवल ASP शैली लघु टैग।
ब्रायन लेसी

46
PHP 5.4 के (बहुत निकट) भविष्य में, का उपयोग </? से अलग किया जाएगा कि क्या short_open_tags सक्षम या अक्षम हैं। <? = चरणबद्ध नहीं किया जा रहा है, इसके विपरीत यह अब भाषा का एक मौलिक टुकड़ा माना जाता है।
मि। ग्रिएवर

175

मैं भी <?=$whatever?>इसे जाने का शौकीन हूं । इसके साथ कभी समस्या नहीं हुई। मैं इंतजार करूँगा जब तक यह मुझे गधे में काटता है। सभी गंभीरता में, 85% (मेरे) ग्राहकों के पास दुर्लभ अवसरों में php.ini तक पहुंच है, वे बंद हैं। अन्य 15% मुख्यधारा के होस्टिंग प्रदाताओं का उपयोग करते हैं, और लगभग सभी ने उन्हें सक्षम किया है। मैं उन्हें प्यार करता हूँ।


41
@ बी सेवन यदि आप हर उस सैद्धांतिक समस्या से बचने की कोशिश करते हैं जो उत्पन्न हो सकती है, तो आपका कोड लगभग निश्चित रूप से अक्षम और छोटी गाड़ी होगी। जब तक PHP समूह लघु टैग को चरणबद्ध करने के लिए सहमत नहीं हो जाता है [एएसपी टैग नहीं], काटे जाने की चिंता बहुत कम है, और संभावित समाधान कहीं अधिक सरल है, अन्य चीजों की तुलना में आप अपना समय "फिक्सिंग" खर्च कर सकते हैं।
सैमगुडी

18
अगर यह आपको काटता है, तो बेहतर होस्टिंग की ओर बढ़ें
रेयान

4
मैं वास्तव में कुछ का उपयोग नहीं है क्योंकि यह से सहमत नहीं हो सकता है का समर्थन नहीं किया। क्या हमें किसी अन्य सुविधा का उपयोग नहीं करना चाहिए जो सर्वर पर समर्थित नहीं हो सकती है? MYSQL बनाम MYSQLI? आप अपना समय थोड़ा कम करके, फिर से और फिर से लंबे टैग लिखने के लिए एक बेहतर मेजबान में बदलने के लिए थोड़ा समय बिताने के एक छोटे से मौका से बचने के लिए करेंगे।
डीन या

2
@BSeven, क्या आपका मतलब है कि आप डिफ़ॉल्ट अपलोड किए गए लोगों को छोड़कर किसी भी PHP एक्सटेंशन का उपयोग नहीं करते हैं?
पचेरियर

143

PHP 5.4 से शुरू, इको शॉर्टकट शॉर्ट टैग से एक अलग मुद्दा है, क्योंकि इको शॉर्टकट हमेशा सक्षम होगा। यह अब एक तथ्य है:

तो इको शॉर्टकट ही ( <?=) अब उपयोग करने के लिए सुरक्षित है।


19
मैं कहूंगा कि यह केवल "लघु-टैग" की आवश्यकता है। <?phpसभी क्लास फ़ाइलों की शुरुआत में इस्तेमाल किया जा सकता है, और फिर आपके पास <?=अपने विचारों के लिए है। फायदे का सौदा।
Xeoncross

6
So the echo shortcut itself (<?=) is safe to use... जब तक आप PHP 5.4 की आवश्यकता के लिए सहज हो। व्यापक रूप से वितरित PHP ऐप्स (जैसे वर्डप्रेस) में 5.4 की आवश्यकता का विलास नहीं है, और यहां तक ​​कि 2011 तक PHP 4 समर्थन की पेशकश करना जारी रहा - PHP 5 जारी होने के बाद एक पूर्ण 7 साल। यदि आप facebook जैसी जगह पर हैं, जहाँ आपके सॉफ़्टवेयर की सभी स्थापनाएँ सीधे कंपनी द्वारा ही संचालित की जाती हैं, तो आपको 5.4 समर्थन की आवश्यकता होती है, जैसे कि आप Wordpress जैसे प्रोजेक्ट पर काम कर रहे हैं।
फ्रैंक किसान

@dukeofgaming, वाह अच्छी पकड़, पता नहीं था कि उनके SVN संशोधन वेब पर उपलब्ध हैं।
पचेरियर

82

इस पूरी चर्चा के साथ समस्या एक अस्थायी भाषा के रूप में PHP के उपयोग में है। कोई भी तर्क नहीं दे रहा है कि टैग का उपयोग एप्लिकेशन स्रोत फ़ाइलों में किया जाना चाहिए।

हालाँकि PHP का एम्बेड करने योग्य वाक्यविन्यास इसे एक शक्तिशाली टेम्पलेट भाषा के रूप में उपयोग करने की अनुमति देता है, और टेम्पलेट यथासंभव सरल और पठनीय होना चाहिए। कई लोगों ने स्मार्ट जैसे एक बहुत धीमे, ऐड-ऑन टेंपलेटिंग इंजन का उपयोग करना आसान पाया है, लेकिन हमारे बीच उन शुद्धतावादियों के लिए जो तेजी से प्रतिपादन और शुद्ध कोड बेस की मांग करते हैं, पीएचपी टेम्पलेट लिखने का एकमात्र तरीका है।

केवल मान्य तर्क संक्षिप्त टैग के उपयोग को स्वीकार करता है कि वे सभी सर्वरों पर समर्थित नहीं हैं। एक्सएमएल दस्तावेजों के साथ संघर्ष के बारे में टिप्पणियां लचर हैं, क्योंकि आपको शायद पीएचपी और एक्सएमएल को वैसे भी मिश्रण नहीं करना चाहिए; और यदि आप हैं, तो आपको पाठ के आउटपुट स्ट्रिंग के लिए PHP का उपयोग करना चाहिए। सुरक्षा कभी भी एक समस्या नहीं होनी चाहिए, क्योंकि यदि आप टेम्पलेट फ़ाइलों के अंदर डेटाबेस एक्सेस क्रेडेंशियल्स जैसी संवेदनशील जानकारी डाल रहे हैं, तो ठीक है, आपको बड़े मुद्दे मिल गए हैं!

अब, सर्वर समर्थन के मुद्दे के रूप में, माना जाता है कि किसी को अपने लक्ष्य मंच के बारे में पता होना चाहिए। यदि साझा होस्टिंग एक संभावित लक्ष्य है, तो छोटे टैग से बचा जाना चाहिए। लेकिन कई पेशेवर डेवलपर्स (जैसे खुद के लिए), ग्राहक स्वीकार करता है (और वास्तव में, इस तथ्य पर निर्भर करता है) कि हम सर्वर आवश्यकताओं को निर्धारित करेंगे। अक्सर मैं स्वयं सर्वर स्थापित करने के लिए जिम्मेदार हूं।

और हम एक होस्टिंग प्रदाता के साथ काम करते हैं जो हमें सर्वर कॉन्फ़िगरेशन का पूर्ण नियंत्रण नहीं देता है - ऐसे मामले में हम शॉर्ट टैग समर्थन खोने की तुलना में बहुत अधिक परेशानी को चलाने पर भरोसा कर सकते हैं। यह बस नहीं होता है।

तो हाँ - मैं सहमत हूँ कि लघु टैग का उपयोग सावधानी से तौला जाना चाहिए। लेकिन मेरा यह भी दृढ़ विश्वास है कि इसे हमेशा एक विकल्प होना चाहिए, और एक डेवलपर जो अपने पर्यावरण के बारे में जानता है, उन्हें इसका उपयोग करने के लिए स्वतंत्र महसूस करना चाहिए।


6
यदि, किसी कारण से, आपने पास .xml फ़ाइलों को mod_php में पास करने के लिए अपाचे सेट किया था, तो <? Xml बात संक्षिप्त टैग के साथ सिरदर्द होगी। लेकिन यह स्पष्ट रूप से एक विचित्र सेटअप है।
फ्रैंक किसान

3
एक टेम्प्लेटिंग भाषा जिसे कुछ प्रकार के आउटपुट दस्तावेजों में वर्कअराउंड के बिना एम्बेड नहीं किया जा सकता है, एक बड़ी विफलता है। PHP कोड और शॉर्ट टैग के साथ XML टेम्पलेट नहीं होने का एकमात्र कारण यह है कि यह काम नहीं करता है, इसलिए नहीं कि इसका कोई मतलब नहीं है।
विंको वर्सालोविक 20

8
यह तेज़, सुविधाजनक अस्थायी भाषा के रूप में PHP के लाभों का लाभ उठाने के लिए "बड़ी असफल" नहीं है। जैसा कि मैंने पहले कहा, यह आपके चुने हुए दृष्टिकोण को समायोजित करने वाले तरीके से लाभ और कमियां तौलने और कोड लिखने का मामला है। स्पष्ट रूप से एक वैध दृष्टिकोण को खारिज न करें क्योंकि यह एक विशेष परिदृश्य में काम नहीं करता है (जिसे आसानी से काम किया जा सकता है)।
ब्रायन लैसी

5
मैं स्पष्ट रूप से किसी भी वैध दृष्टिकोण को खारिज नहीं कर रहा हूं (प्रश्न के लिए मेरा उत्तर देखें।) आप एक हैं जो एक्सएमएल में PHP को स्पष्ट रूप से खारिज करते हैं, मैं उद्धृत करता हूं: "आपको वैसे भी PHP और XML का मिश्रण नहीं करना चाहिए"। इसके अलावा, मैं जिस बड़ी असफलता का उल्लेख कर रहा था <?, वह शॉर्ट टैग के रूप में उपयोग करने का निर्णय था , क्योंकि यह एक्सएमएल पर बदसूरत वर्कअराउंड की ओर जाता है। उस ने कहा, मैं मानता हूं कि यह फायदे और कमियों को तौलने का मामला है, और यदि आप जानते हैं कि आप क्या कर रहे हैं, तो आप निश्चित रूप से कर सकते हैं। लेकिन यह <?एक अच्छा विकल्प नहीं है।
विंको व्रसालोविक

3
मुझे पार्टी में थोड़ी देर हो गई है, लेकिन मुझे वास्तव में यह उत्तर पसंद है, और यह स्थिति के साथ मेरे अनुभव को दर्शाता है। जबकि हमारे कार्यालय में इस मुद्दे पर हमारी कुछ असहमति है, मैं कह सकता हूं कि कई वर्षों से php में दैनिक कार्य के साथ, मैं कभी भी इस मुद्दे पर नहीं चला। जब XML को उत्पन्न करने के लिए PHP का उपयोग किया जाता है, तो यह मेरे अनुभव में हमेशा अत्यधिक गतिशील सामग्री के संदर्भ में रहा है, जिसे कभी भी PHP के माध्यम से सीधे नहीं किया गया था, इसलिए यह मुद्दा कभी नहीं आता है।
रेड्रिनार्ड

33

संक्षिप्त टैग Zend फ्रेमवर्क के लिए धन्यवाद आ रहे हैं जो उनके डिफ़ॉल्ट MVC कॉन्फ़िगरेशन में " PHP को एक टेम्पलेट भाषा के रूप में धकेलते हैं " । मैं यह नहीं देखता कि बहस किस बारे में है, आपके जीवनकाल के दौरान आपके द्वारा बनाए गए अधिकांश सॉफ्टवेयर आपके या आपके कंपनी के नियंत्रण वाले सर्वर पर काम करेंगे। जब तक आप खुद को लगातार बनाए रखते हैं, तब तक कोई समस्या नहीं होनी चाहिए।

अपडेट करें

Magento के साथ काफी काम करने के बाद , जो लंबे रूप का उपयोग करता है। परिणामस्वरूप, मैंने इसके लंबे रूप में स्विच किया है:

<?php and <?php echo

ऊपर

<? and <?=

अंतर को सुनिश्चित करने के लिए काम की एक छोटी राशि की तरह लगता है।


8
मैं फ्रीलान्स और अपने सभी कोड साझा होस्टिंग पर चला जाता है, तो कोई नियंत्रण नहीं! :)
एमडीकोर

12
यदि आपके पास पर्याप्त ग्राहक हैं, तो आप अपने स्वयं के कॉलोक में जाते हैं, तो साझा होस्टिंग असुरक्षित और अस्थिर है।
जेक मैकग्रॉ

2
लघु टैग Zend वापस ला रहा था जाहिरा तौर पर पकड़ नहीं था क्योंकि Zend लंबे संस्करण का उपयोग कर रहे हैं: Framework.zend.com/manual/en/zend.view.scripts.html
Gerry

3
@ गेरी मैंने भी इसे हाल ही में पढ़ा है, इस थ्रेड पर अंतिम टिप्पणी देखें: अपडेट करें। छोटे खुले टैग को सक्षम करने के लिए अपडेट करें
MrWhite

2
आपको वास्तव में UPDATE के बाद पहले वाक्य में व्याकरण को सही करना चाहिए, जो अपने वर्तमान स्वरूप में कोई मतलब नहीं रखता है।
रेड्रिनार्ड

22

क्योंकि यह भ्रम XML घोषणाओं के साथ उत्पन्न हो सकता है। बहुत से लोग इस बात से सहमत साथ , हालांकि आप।

एक अतिरिक्त चिंता यह है कि यह केवल शॉर्ट टैग्स के साथ सबकुछ कोड करने के लिए उत्पन्न होने वाला दर्द है, जो अंत में पता लगाने के लिए कि अंतिम होस्टिंग सर्वर ने उन्हें चालू कर दिया है ...


वैसे भी XML घोषणा की वजह से भ्रम नहीं होगा, अगर short_tags चालू है?
एमडीकोर

तो एक्सएमएल घोषणा को सीधे आउटपुट करने के बजाय, आपके पास यह PHP गूंज है। यह वास्तव में एक अच्छा खंडन नहीं है।
मू।

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

1
@macek: मैं उस के बारे में पता कर रहा हूँ। यह सिर्फ पहला उदाहरण था जिसके बारे में मैंने सोचा था। एक और, क्या होगा अगर आप XML फ़ाइल में PHP एम्बेड करते हैं? आप सीधे ऐसा नहीं कर सकते। और मुझे उस समस्या का हल भी न बताएं, मैं उनके बारे में जानता हूं। मुद्दा यह है कि XML फ़ाइल को पार्स करने के लिए PHP के बहुत सारे तरीके हैं। आप शायद उन सभी को वर्कअराउंड ( <?='<?xml') या "आप ऐसा नहीं करना चाहिए" कहकर खारिज कर सकते हैं, लेकिन इससे यह तथ्य नहीं बनता है कि यह गायब हो सकता है।
विन्को वेर्सालोविक

1
अगर वे काम नहीं करते तो शॉर्ट टैग्स में दर्द कैसे होता है? यह एक थोक करना और <?=साथ में करना बहुत आसान है <? echo । कई पाठ संपादक आसानी से एक ही बार में हजारों फ़ाइलों को कर सकते हैं।
यमिको

20

निम्नलिखित उसी का अद्भुत प्रवाह आरेख है:

निर्णय लेने के पेड़ का उपयोग <??

स्रोत: सॉफ्टवेयर इंजीनियरिंग स्टाॅक एक्सचेंज पर अज्ञात प्रश्न


2
यह वर्णन कर रहा है कि क्या शॉर्ट इको टैग का उपयोग करना है, न कि <?प्रश्न में वर्णित संक्षिप्त टैग के समान (हालांकि यह पूर्व-5.4 स्थापित समान कॉन्फिगर का उपयोग करता है)
आलोक

वास्तव में यह एक ऐसा उत्तर होना चाहिए जिसे हर कोई समझ सकता है, हालांकि परिस्थितियों को वास्तव में नहीं समझाया गया है कि आप कई मामलों में संक्षिप्त टैग का उपयोग क्यों नहीं करना चाहते हैं (जैसे साझा होस्टिंग सिस्टम पर php.ini फ़ाइल को बदलने में सक्षम नहीं हैं)
Björn K

14

http://uk3.php.net/manual/en/language.basic-syntax.phpmode.php में बहुत सारी सलाह हैं, जिनमें शामिल हैं:

जबकि कुछ लोगों को लघु टैग और एएसपी शैली टैग सुविधाजनक लगते हैं, वे कम पोर्टेबल होते हैं, और आमतौर पर अनुशंसित नहीं होते हैं।

तथा

ध्यान दें कि यदि आप XML या XHTML के भीतर PHP को एम्बेड कर रहे हैं तो आपको <?php ?>मानकों का अनुपालन करने के लिए टैग का उपयोग करना होगा ।

तथा

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


14

मामले में किसी को भी इस पर ध्यान दे ... PHP 5.4.0 अल्फा 1 के रूप <?=में हमेशा उपलब्ध है:

http://php.net/releases/NEWS_5_4_0_alpha1.txt

तो ऐसा लगता है कि संक्षिप्त टैग (ए) स्वीकार्य हैं और (बी) यहां रहने के लिए। अभी के लिए कम से कम ...


5
<?=5.4 के रूप में एक छोटा टैग नहीं माना जाता है
T0xicCode

12
  • कुछ वेबसर्वर्स (साझा होस्ट आदि) में संक्षिप्त टैग डिफ़ॉल्ट रूप से चालू नहीं होते हैं, इसलिए कोड पोर्टेबिलिटी एक समस्या बन जाती है यदि आपको इनमें से किसी एक पर जाने की आवश्यकता होती है।

  • कुछ के लिए पठनीयता एक मुद्दा हो सकता है। कई डेवलपर्स पा सकते हैं कि जब आप किसी फ़ाइल को स्कैन करते हैं तो <?phpकोड ब्लॉक की शुरुआत के एक अधिक स्पष्ट मार्कर के रूप में आंख को पकड़ता है <?, खासकर यदि आप HTML और PHP के साथ एक कोड आधार के साथ फंस गए हैं, तो कसकर इंटर-बुने हुए हैं।


2
लघु टैग 95% वेबसर्वर में सक्षम हैं।
पाओलो बेरेनटिनो

19
मैं "पठनीयता" तर्क नहीं खरीदता। यदि आप PHP को एक अस्थायी भाषा के रूप में उपयोग कर रहे हैं, <?= $var ?>तो <?php echo $var ?>
फ्रैंक किसान

2
@Paoo यह '08 के बाद से बदल सकता है, लेकिन EC2 उबंटू और फेडोरा उदाहरणों में yum इंस्टॉल और PHP के संस्करणों को उपयुक्त रूप से डिफ़ॉल्ट रूप से अक्षम किया गया है
डग मोलिनक्स

2
पूर्ण टैग का उपयोग करें और आपके पास 100% :)
एल्विस सियोटी

1
@FrankFarmer, मुझे लगता है कि वह बिना इको की तुलना कर रहा है। <?बनाम <?php
पचेरियर

11

नोट: PHP 5.4 में शुरू होने वाला छोटा टैग, <?=अब हमेशा उपलब्ध है।


5

मैंने इस पृष्ठ को विषय पर जानकारी की तलाश के बाद पढ़ा, और मुझे लगता है कि एक प्रमुख मुद्दे का उल्लेख नहीं किया गया है: आलस्य बनाम स्थिरता। PHP के लिए "वास्तविक" टैग <? Php और?> हैं। क्यों? मुझे वास्तव में परवाह नहीं है। जब आप स्पष्ट रूप से PHP के लिए कुछ और उपयोग करना चाहेंगे? <% और%> का अर्थ है एएसपी मेरे लिए, और <स्क्रिप्ट ..... का अर्थ है जावास्क्रिप्ट (ज्यादातर मामलों में)। तो स्थिरता, तेजी से सीखने, पोर्टेबिलिटी और सादगी के लिए, मानक के अनुरूप क्यों नहीं?

दूसरी ओर मैं सहमत हूं कि टेम्प्लेट्स (और केवल टेम्प्लेट्स) में संक्षिप्त टैग उपयोगी लगते हैं, लेकिन समस्या यह है कि हमने अभी इस पर चर्चा करने में इतना समय बिताया है, कि यह वास्तव में बर्बाद होने में बहुत लंबा समय लगेगा। कि "php" के अतिरिक्त तीन अक्षर टाइप करने में ज्यादा समय !!

जबकि कई विकल्प अच्छे हैं, यह बिल्कुल तर्कसंगत नहीं है और यह समस्या पैदा कर सकता है। कल्पना करें कि क्या प्रत्येक प्रोग्रामिंग भाषा में 4 या अधिक प्रकार के टैग की अनुमति है: जावास्क्रिप्ट <JS या <script .... या <% या <? जेएस .... कि मददगार होगा? PHP के मामले में पार्सिंग ऑर्डर इन चीजों की अनुमति देने के पक्ष में है, लेकिन भाषा कई अन्य तरीकों से लचीली नहीं है: यह मामूली असंगतता पर नोटिस या त्रुटियां फेंकता है, फिर भी अक्सर शॉर्ट टैग का उपयोग किया जाता है। और जब शॉर्ट टैग एक सर्वर पर उपयोग किए जाते हैं जो उनका समर्थन नहीं करता है, तो यह पता लगाने में बहुत लंबा समय लग सकता है कि क्या गलत है क्योंकि कुछ मामलों में कोई त्रुटि नहीं दी गई है।

अंत में, मुझे नहीं लगता कि लघु टैग यहां समस्या हैं: केवल दो तार्किक प्रकार के PHP कोड ब्लॉक हैं - 1) नियमित PHP कोड, 2) टेम्पलेट गूँज। पूर्व के लिए, मेरा दृढ़ विश्वास है कि केवल <? Php और?> को सब कुछ सुसंगत और पोर्टेबल रखने की अनुमति दी जानी चाहिए। बाद के लिए, <=? $ Var?> विधि बदसूरत है। ऐसा क्यों होना चाहिए? क्यों नहीं कुछ और अधिक तार्किक जोड़? <? php $ var?> जो कुछ भी नहीं करेगा (और केवल सबसे दूरस्थ संभावनाओं में यह किसी चीज़ के साथ संघर्ष कर सकता है), और वह आसानी से अजीब <? = वाक्य रचना को प्रतिस्थापित कर सकता है। या अगर यह समस्या है, तो शायद वे इसके बजाय <? Php = $ var?> का उपयोग कर सकते हैं और विसंगतियों के बारे में चिंता नहीं कर सकते।

उस बिंदु पर जहां खुले और बंद टैग के लिए 4 विकल्प हैं और विशेष "इको" टैग के यादृच्छिक जोड़, PHP में php.ini या .htaccess में "कस्टम ओपन / क्लोज टैग" ध्वज हो सकता है। इस तरह से डिजाइनर वे चुन सकते हैं जो उन्हें सबसे अच्छा लगता है। लेकिन स्पष्ट कारणों के लिए यह ओवरकिल है। तो 4+ विकल्प की अनुमति क्यों दें?


4

जब आप MVC फ्रेमवर्क या CMS के साथ काम करते हैं, तो उनका उपयोग करना अच्छा होता है, जिसमें अलग-अलग दृश्य फाइलें होती हैं।
यह तेज, कम कोड है, डिजाइनरों के लिए भ्रमित करने वाला नहीं है। बस सुनिश्चित करें कि आपका सर्वर कॉन्फ़िगरेशन उनका उपयोग करने की अनुमति देता है।


4

कोडआईग्निटर एप्लिकेशन विकसित करते समय एक स्थिति जो थोड़ी अलग होती है । जब भी PHP को टेम्पलेट / दृश्य में उपयोग किया जा रहा हो, तो CodeIgniter शॉर्टटैग का उपयोग करता है, अन्यथा मॉडल और नियंत्रकों के साथ यह हमेशा लंबे टैग का उपयोग करता है। यह फ्रेमवर्क में एक कठिन और तेज़ नियम नहीं है, लेकिन अधिकांश भाग के लिए फ्रेमवर्क और अन्य उपयोग के बहुत से स्रोत इस सम्मेलन का अनुसरण करते हैं।

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


4

<?नए संस्करणों में डिफ़ॉल्ट रूप से अक्षम है। आप इसे सक्षम कर सकते हैं जैसे कि PHP में वर्णित संक्षिप्त टैग को सक्षम करना


यह पुराने संस्करणों में डिफ़ॉल्ट रूप से अक्षम है यह भी नहीं है।
पचेरियर

3

IMHO लोग जो शॉर्ट टैग का उपयोग करते हैं वे अक्सर जो कुछ भी गूंज रहे हैं, उससे बचना भूल जाते हैं। एक टेम्पलेट इंजन होना अच्छा होगा जो डिफ़ॉल्ट रूप से बच जाता है। मेरा मानना ​​है कि रोब ए ने Zend फ्रेमवर्क ऐप में शॉर्ट टैग से बचने के लिए एक त्वरित हैक लिखा था। यदि आपको लघु टैग पसंद हैं क्योंकि यह PHP को पढ़ना आसान बनाता है। तो होशियार एक बेहतर विकल्प हो सकता है?

{$myString|escape}

मुझे उससे बेहतर लगता है

<?= htmlspecialchars($myString) ?> 

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


3

एक से पूछना है कि लघु टैग का उपयोग करने का क्या मतलब है

टाइप करने की जल्दी

MDCore ने कहा:

<?= टाइपिंग की तुलना में कहीं अधिक सुविधाजनक है <?php echo

हाँ यही है। आप अपनी लिपियों में 7 अक्षर * X बार टाइप करने से बचते हैं।

हालाँकि, जब कोई स्क्रिप्ट डिज़ाइन करने, विकसित करने और लिखने के लिए एक घंटे या 10 घंटे, या उससे अधिक समय लेता है, तो स्क्रिप्ट की अवधि के लिए उन 7 वर्णों को यहां और वहां टाइप न करने के लिए कितने सेकंड का समय प्रासंगिक है?

कुछ कोर, या सभी के लिए क्षमता की तुलना में, यदि आप लघु स्क्रिप्ट को चालू नहीं कर रहे हैं, या काम नहीं कर रहे हैं, तो स्क्रिप्ट पर काम कर रहे हैं या एक ini फ़ाइल / सर्वर कॉन्फिगर को बदलने वाले किसी भी व्यक्ति को काम करने से रोकते हैं, अन्य क्षमता।

आपके द्वारा प्राप्त की जाने वाली छोटी लाभ संभावित समस्याओं की गंभीरता को दूर करने के करीब नहीं आती है, जो कि आपकी साइट काम नहीं कर रही है, या इससे भी बदतर है, इसके कुछ हिस्से काम नहीं कर रहे हैं और इस प्रकार हल करने के लिए सिरदर्द है।

पढ़ने में आसान

यह परिचित पर निर्भर करता है ।
मैंने हमेशा देखा और इस्तेमाल किया है <?php echo। इसलिए जब <?=पढ़ना कठिन नहीं है, तो यह मेरे लिए परिचित नहीं है और इस प्रकार पढ़ना आसान नहीं है

और सामने के छोर / वापस अंत डेवलपर विभाजन के साथ (ज्यादातर कंपनियों के साथ के रूप में) एक सामने अंत उन टेम्पलेट्स पर काम कर रहा डेवलपर अधिक होगा परिचित जानते हुए भी <?="पीएचपी खुला टैग और गूंज" के बराबर है?
मैं कहूंगा कि सबसे अधिक तार्किक एक के साथ अधिक आरामदायक होगा। यही है, एक स्पष्ट PHP खुले टैग और फिर "इको" क्या हो रहा है - <?php echo

जोखिम मूल्यांकन
मुद्दा = पूरी साइट या कोर स्क्रिप्ट काम करने में विफल;

मुद्दे की संभावना बहुत कम है + परिणाम की गंभीरता बहुत अधिक है = उच्च जोखिम

निष्कर्ष

आप यहां कुछ सेकंड बचाते हैं और कुछ वर्ण टाइप करने के लिए नहीं होते हैं, लेकिन इसके लिए बहुत जोखिम होता है, और परिणामस्वरूप परिणामस्वरूप पठनीयता भी खो देती है।

आगे या पीछे अंत कोडर परिचित के साथ <?=अधिक समझने की संभावना है <?php echoमानक -, वे मानक PHP चीजों के रूप में <?phpखुला टैग और बहुत अच्छी तरह से जाना जाता है "गूंज"।
(यहां तक ​​कि फ्रंट एंड कोडर्स को "इको" पता होना चाहिए या वे केवल एक फ्रेमवर्क द्वारा दिए गए किसी भी कोड पर काम नहीं करेंगे)।

जबकि रिवर्स संभावना के रूप में नहीं है, किसी को तार्किक रूप से कटौती करने की संभावना नहीं है कि PHP शॉर्ट टैग पर बराबर संकेत "गूंज" है।


टाइपिंग से इसका कोई लेना-देना नहीं है। यह छोटा है और इस प्रकार पढ़ने में आसानी होने की संभावना है । पढ़ने के लिए इस्तेमाल किया गया व्यक्ति पढ़ने लिखने के लिए इस्तेमाल किए जाने वाले व्यक्ति की तुलना में अधिक आसानी से <?=पढ़ेगा । <?=<?php echo<?php echo
पचेरियर

@ स्पेसर शॉर्टर बस पढ़ना आसान नहीं है। हम बिल्कुल भिन्न हैं। आपका क्या मतलब है, यह आपके लिए पढ़ना आसान है । जैसा कि मैंने अपने जवाब में कहा, जैसा कि मुझे <?phpदेखने के लिए इस्तेमाल किया जाता है कि पूरे कोड में कई बार मुझसे ज्यादा <?=परिचित हैं - परिचित चीजें आसान बनाती हैं - जरूरी नहीं कि बेहतर हो।
जेम्स

नहीं, मैं आप की तुलना नहीं कर रहा हूँ और मुझे, मैं कह रहा हूँ पढ़ने के लिए इस्तेमाल किया एक व्यक्ति <?=पढ़ा जाएगा <?=पढ़ने के लिए इस्तेमाल किया एक व्यक्ति की तुलना में बेहतर <?php echoपढ़ा <?php echo। इसका मतलब है कि अगर हमारे पास व्यक्ति एक्स की दो समान प्रतियां हैं, और उन्हें केवल उस पहलू में बदल दें, जिसमें एक पढ़ने के लिए उपयोग किया जाता है <?=, और दूसरा जो पढ़ने के लिए उपयोग किया जाता है <?php echo, पहली कॉपी xअपने वांछित सिंटैक्स का उपयोग करते हुए पढ़ने की पठनीयता प्राप्त कर सकती है , जबकि दूसरी प्रति yअपने वांछित वाक्यविन्यास को पढ़ते समय पठनीयता मूल्य प्राप्त कर सकती है , जहां x >= y
पचेरियर

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

3

चलो सामना करते हैं। PHP छोटे टैग के बिना बदसूरत है।

.htaccessयदि आप इसे प्राप्त नहीं कर सकते हैं, तो आप उन्हें एक फ़ाइल में सक्षम कर सकते हैं php.ini:

php_flag short_open_tag on

3
असत्य। कभी-कभी, सर्वर किसी भी तरह के ओवरराइडिंग से इनकार करने के लिए सेट किया जाता है, सर।
अल्फ्रावो

17
यह सच है, लेकिन अगर आपका मेजबान आपको htaccess के साथ ओवरराइड करने की अनुमति नहीं देता है, तो आपको वास्तव में एक नए होस्ट की आवश्यकता है! :)
ब्रायन लैसी

1
कमांड लाइन इंटरफ़ेस पर काम नहीं करता है, और php_flag ने हर समय समर्थन नहीं किया है
एल्विस

3

पोर्टेबिलिटी के मुद्दों से बचने के लिए, PHP टैग को शुरू करें <?phpऔर अगर आपकी PHP फाइल पूरी तरह से PHP है, तो कोई HTML नहीं है, आपको समापन टैग का उपयोग करने की आवश्यकता नहीं है।


2
  • लघु टैग उन मामलों में उपयोग करने के लिए स्वीकार्य हैं जहां आप निश्चित हैं कि सर्वर इसका समर्थन करेगा और यह कि आपके डेवलपर्स इसे समझेंगे।
  • कई सर्वर इसका समर्थन नहीं करते हैं, और कई डेवलपर्स इसे एक बार देखने के बाद समझेंगे।
  • मैं पोर्टेबिलिटी सुनिश्चित करने के लिए पूर्ण टैग का उपयोग करता हूं, क्योंकि यह वास्तव में उतना बुरा नहीं है।

उस के साथ, मेरे एक दोस्त ने यह कहा, वैकल्पिक मानकीकृत एस्प-शैली के टैग के समर्थन में , जैसे कि <%बजाय <?, जो php.ini में एक सेटिंग है जिसे asp_tags कहा जाता है। यहाँ उसका तर्क है:

... मनमाने सम्मेलनों को मानकीकृत किया जाना चाहिए । यही है, किसी भी समय हम संभावनाओं के एक सेट के साथ सामना कर रहे हैं जो सभी समान मूल्य के हैं - जैसे कि हमारी प्रोग्रामिंग भाषा को किस विचित्र विचलन का उपयोग करना चाहिए - हमें एक मानक तरीका चुनना चाहिए और इसके साथ रहना चाहिए। इस तरह हम सभी भाषाओं के सीखने की अवस्था को कम कर देते हैं (या जो भी चीजें सम्मेलन से संबंधित हैं)।

मेरे लिए अच्छा लगता है, लेकिन मुझे नहीं लगता कि हम में से कोई भी इस कारण से वैगनों को घेर सकता है। इस बीच, मैं पूरा करने के लिए छड़ी होगा <?php


2

मैंने सोचा कि यह PHP 7 के रूप में उल्लेख के लायक है:

  • लघु एएसपी PHP टैग <% … %>चले गए हैं
  • <? … ?>यदि short_open_tagसही पर सेट किया गया है, तो लघु PHP टैब अभी भी उपलब्ध हैं । यह डिफ़ॉल्ट है।
  • PHP 5.4 के बाद से, सेटिंग की परवाह किए बिना लघु प्रिंट टैग हमेशा सक्षम <?=… ?>होते हैं ।short_open_tag

पहले एक के लिए अच्छी लकीर, क्योंकि यह अन्य भाषाओं के साथ हस्तक्षेप करता है।

अब व्यक्तिगत पसंद के अलावा छोटे प्रिंट टैग का उपयोग नहीं करने का कोई कारण नहीं है।

बेशक, यदि आप PHP 5 के विरासत संस्करणों के साथ संगत होने के लिए कोड लिख रहे हैं, तो आपको पुराने नियमों से चिपके रहने की आवश्यकता होगी, लेकिन याद रखें कि PHP 5.6 से पहले कुछ भी अब असमर्थित है।

देखें: https://secure.php.net/manual/en/language.basic-syntax.phptags.php


1
जब तक मैं गलत नहीं हूँ, आपका पहला बिंदु गलत है। डॉक्टर का कहना है कि एएसपी टैग, लघु PHP टैग नहीं, PHP 7.0.0 के रूप में चला गया है।
सुधार

@ सुधार आप बिलकुल सही हैं। मैं अपने उत्तर को संपादित करूंगा। धन्यवाद
Manngo

1

यदि आप XSS की परवाह करते हैं तो आपको <?= htmlspecialchars(…) ?>ज्यादातर समय का उपयोग करना चाहिए , इसलिए एक छोटा टैग बड़ा अंतर नहीं डालता है।

यदि आप इसे छोटा echo htmlspecialchars()करते हैं h(), तब भी यह एक समस्या है, जिसे आपको लगभग हर बार जोड़ना याद रखना होगा (और यह ध्यान रखने की कोशिश करनी चाहिए कि कौन सा डेटा पहले से बच गया है, जो कि अनसैप्ड है, लेकिन हानिरहित केवल गलतियों को अधिक संभावना बनाता है)।

मैं एक अस्थायी इंजन का उपयोग करता हूं जो डिफ़ॉल्ट रूप से सुरक्षित है और <?phpमेरे लिए टैग लिखता है।


7
यदि आप अपने आप को "<? Php echo htmlspecialchars ($ टेक्स्ट, ENT_QUOTES, 'UTF-8') टाइप करते हुए पाते हैं?> दिन में 500 बार, आप" h "की तरह एक शॉर्टकट फ़ंक्शन बनाना चाह सकते हैं .." < ? = एच ($ पाठ)?> "एक टेम्प्लेट को स्कैन करते समय बस इतना अधिक पठनीय है।
अलेक्जेंडर मलफिट

1
यह वास्तव में बेहतर है, लेकिन एक टेम्पलेट इंजन के साथ यह केवल $ {पाठ} या ऐसा हो सकता है (और आपको h () जोड़ने के लिए याद रखने की ज़रूरत नहीं है)
Kornel

7
PHP अपने आप में एक टेम्प्लेटिंग इंजन है। जब आप छोटे टैग का उपयोग करना बंद कर देते हैं तो यह खराब टेम्प्लेटिंग इंजन होना शुरू हो जाता है क्योंकि यह बहुत क्रियात्मक हो जाता है।
जोसेफ स्लैब

1
@Alexander Malfait एक अच्छी टिप है। लेकिन <? = की जरूरत नहीं है। आप केवल फ़ंक्शन को वापसी के बजाय स्ट्रिंग को प्रतिध्वनित कर सकते हैं, इसलिए तब आप <? Php h ('हैलो') लिखेंगे?> क्या हम पहले से ही ऐसा नहीं करते हैं जब हम i18n करते हैं? <? php _e ('')?> यह बुरा नहीं है।
व्लादिफ्र

1

<?php ?>इस प्रोग्रामिंग लैंग्वेज के डेवलपर्स ने अपनी कोर-लैंग्वेज को बड़े पैमाने पर अपडेट किया है, क्योंकि इसका उपयोग करना बेहतर है। आप छोटे टैग और लंबे टैग के बीच अंतर देख सकते हैं।

लघु टैग को हल्के लाल के रूप में हाइलाइट किया जाएगा जबकि लंबे समय तक हाइलाइट किए गए हैं!

हालांकि, कुछ बाहर गूँज रहा है, उदाहरण के लिए: <?=$variable;?>ठीक है। लेकिन लंबे टैग पसंद करते हैं।<?php echo $variable;?>


1

परिवर्तित करें <?(अनुगामी स्थान के बिना) <?php(अनुगामी स्थान के साथ):

find . -name "*.php" -print0 | xargs -0 perl -pi -e 's/<\?(?!php|=|xml|mso| )/<\?php /g'

कन्वर्ट <?(अनुगामी स्थान के साथ) <?php( अनुगामी स्थान को बनाए रखना):

find . -name "*.php" -print0 | xargs -0 perl -pi -e 's/<\? /<\?php /g'

1

लघु टैग php में उपलब्ध हैं। इसलिए आपको अपनी स्क्रिप्ट में पहले कथन की प्रतिध्वनि की आवश्यकता नहीं है

उदाहरण:

    $a =10;
    <?= $a;//10 
    echo "Hellow";//
    echo "Hellow";

   ?>

अचानक आपको एक php स्क्रिप्ट के लिए उपयोग करने की आवश्यकता होती है, तब u इसका उपयोग कर सकते हैं। उदाहरण:

<html>
<head>
<title></title>
</head>  
<body>
<p>hellow everybody<?= hi;?></p>
<p>hellow everybody  </p> 
<p>hellow everybody  </p>   
</body>
</html>

1

2019 तक मैं यहाँ कुछ उत्तरों से असहमत हूँ। मैं लंबे टैग का उपयोग करने की सलाह देता हूं

<?php /* code goes here */ ?>

या लघु गूंज टैग

<?= /* code goes here */ ?>

कारण: वे PSR-1 बुनियादी कोडिंग मानक द्वारा अनुशंसित हैं

अन्य लघु टैग की <? /* code goes here */ ?>सिफारिश नहीं की जाती है।

युक्ति कहती है:

PHP कोड लंबे टैग या लघु-गूंज टैग का उपयोग करना चाहिए; यह अन्य टैग विविधताओं का उपयोग नहीं करना चाहिए


1

3 टैग php में उपलब्ध हैं:

  1. लंबे रूप का टैग जिसे <?php ?>किसी भी कॉन्फ़िगर करने का निर्देश देने की आवश्यकता नहीं है
  2. short_open_tag जो <? ?> उपलब्ध है अगर short_open_tag विकल्प php.ini में है
  3. <?= php 5.4.0 के बाद से छोटा टैग यह हमेशा उपलब्ध है

php से 7.0.0 एस्प और स्क्रिप्ट टैग हटा दिए जाते हैं


इस सवाल का जवाब नहीं है।
राल्फफ्राइडल सेप

-5

नहीं, और वे PHP 6 द्वारा चरणबद्ध किए जा रहे हैं, यदि आप कोड दीर्घायु की सराहना करते हैं, तो बस उन्हें या <% ... %>टैग का उपयोग न करें ।


4
मैंने अन्य ब्लॉग पोस्ट देखे हैं जो कहते हैं कि वे संक्षिप्त नहीं होने जा रहे हैं, बस एएसपी शैली के लघु टैग।
एमडीकोर

22
ऐसा लगता है कि यह उत्तर गलत है, PHP डेवलपर्स मीटिंग के इस लिंक के अनुसार: php.net/~derick/…
चार्ल्स

7
वे इतने बुरे क्यों हैं, क्यों? हर कोई इतना आत्मविश्वासी होता है कि वे बौआद हैं लेकिन कोई यह नहीं कहता कि क्यों।
जोसेफ सेबल

6
असत्य। वे चरणबद्ध कर रहे हैं <%%> टैग, जैसा कि वास्तव में उन्हें होना चाहिए। वे कोई उद्देश्य नहीं बल्कि भ्रमित करने के लिए सेवा करते हैं। द <? ;> टैग प्रभावित नहीं होंगे; लेकिन निश्चित रूप से वे अभी भी प्रति-सर्वर आधार पर कॉन्फ़िगर करने योग्य हैं, और आपको हमेशा अपने लक्ष्य प्लेटफ़ॉर्म की आवश्यकताओं के बारे में पता होना चाहिए।
ब्रायन लैसी

6
यह जानकारी गलत और भ्रामक प्रतीत होती है, और इसे लेखक द्वारा सही किया जाना चाहिए।
टेक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.