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




हिंदी में html तत्वों (17)

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

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

आधिकारिक दस्तावेज़ीकरण के अनुसार जानकारी यहां दी गई है:

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

मेरे अनुभव में अधिकांश सर्वरों में छोटे टैग सक्षम होते हैं। टाइपिंग

<?=

टाइपिंग से कहीं ज्यादा सुविधाजनक है

<?php echo 

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


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

{$myString|escape}

मेरे लिए जो बेहतर दिखता है

<?= htmlspecialchars($myString) ?> 


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

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

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

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

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


कनवर्ट करें <? (पीछे की जगह के बिना) <?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'

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

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


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


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


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


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

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

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

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

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


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

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

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


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

अद्यतन करें

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

<?php and <?php echo

ऊपर

<? and <?=

इंटरऑपरेबिलिटी को आश्वस्त करने के लिए काम की एक छोटी राशि की तरह लगता है।


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

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

तथा

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

तथा

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



I thought it worth mentioning that as of PHP 7:

  • Short PHP tags <? … ?> are gone
  • Since PHP 5.4, Short Print tags <?=… ?> are always enabled, regardless of the short_open_tag setting.

Good riddance to the first one, as it interfered with other languages.

There is now no reason not to use the short print tags, apart from personal preference.

Of course, if you're writing code to be compatible with legacy versions of PHP 5, you will need to stick to the old rules, but remember that anything before PHP 5.6 is now unsupported.

See: https://secure.php.net/manual/en/language.basic-syntax.phptags.php


No, and they're being phased out by PHP 6 so if you appreciate code longevity, simply don't use them or the <% ... %> tags.


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

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





php-shorttags