2010-01-07 31 views
72
<?php 

$a=1; 

?> 
<?=$a;?> 

<?= वास्तव में क्या मतलब है?'<? =' PHP में क्या मतलब है?

+0

साइड नोट: यह बड़े पैमाने पर ASP.NET MVC विचारों में प्रयोग किया जाता है। – Omar

+2

http://stackoverflow.com/questions/1963901/what-does-this-symbol-mean-in-php/1963912 –

+6

ध्यान दें कि ';' निरर्थक है; चूंकि उत्तरों का सुझाव है कि यह शॉर्ट-टैग अंत में जोड़े गए अर्धविराम के साथ 'echo' तक फैलता है, [php दस्तावेज़] (http://php.net/manual/en/language.basic-syntax.phpmode] के अनुसार। php)। –

उत्तर

107

यह <?php echo $a; ?> के लिए एक आशुलिपि है।

यह डिफ़ॉल्ट since 5.4php.ini सेटिंग के बावजूद रूप से सक्षम है।

<?php echo $a; ?> 
+0

क्या यह php 7 में उपलब्ध है? – zachdyer

31

यह इस के लिए एक आशुलिपि है:

<?php echo $a; ?> 

वे छोटे टैग कहा जाता है; documentation में उदाहरण # 2 देखें।

+10

कृपया ध्यान दें कि सभी सर्वरों छोटे टैग का समर्थन नहीं करते, जैसा कि नीचे एक जवाब में बताया गया। उन्हें php.ini की आवश्यकता है 'short_open_tag = ऑन' –

5
<?=$a; ?> 

के लिए एक शॉर्टकट है।

7

<?= $a ?><? echo $a; ?>, बस सुविधा के लिए आशुलिपि के रूप में एक ही है:

8

चूंकि यह किसी भी मूल्य को दोहराने के लिए है कि इसका मतलब है echo नहीं जोड़ना होगा, मैंने सोचा था कि आप को देखने के लिए वास्तव में क्या मतलब है PHP में करना चाहते हैं:

Array 
(
    [0] => Array 
     (
      [0] => 368 // T_OPEN_TAG_WITH_ECHO 
      [1] => <?= 
      [2] => 1 
     ) 
    [1] => Array 
     (
      [0] => 309 // T_VARIABLE 
      [1] => $a 
      [2] => 1 
     ) 
    [2] => ; // UNKNOWN (because it is optional (ignored)) 
    [3] => Array 
     (
      [0] => 369 // T_CLOSE_TAG 
      [1] => ?> 
      [2] => 1 
     ) 
) 

आप परीक्षण करने के लिए इस कोड का उपयोग कर सकते हैं यह अपने आप को:

$tokens = token_get_all('<?=$a;?>'); 
print_r($tokens); 
foreach($tokens as $token){ 
    echo token_name((int) $token[0]), PHP_EOL; 
} 
List of Parser Tokens से

, here is what T_OPEN_TAG_WITH_ECHO links to

+0

टोकन मुझे और विवरण बताने में विफल रहा। – user198729

1

मुझे आशा है कि यह पदावनत नहीं होती है। जबकि लेखन <? blah code ?> काफी अनावश्यक और XHTML के साथ भ्रम है, <?= स्पष्ट कारणों के लिए, नहीं है। दुर्भाग्य से मैं, इसका इस्तेमाल नहीं क्योंकि short_open_tag अधिक से अधिक अक्षम होने लगता है।

अद्यतन: मैं <?= फिर से प्रयोग करते हैं अब है, क्योंकि यह पीएचपी 5.4.0 के साथ डिफ़ॉल्ट रूप से सक्षम है। http://php.net/manual/en/language.basic-syntax.phptags.php

1

देखें पीएचपी 5.4.0 के रूप में, <?= ?> हमेशा भी short_open_tag php.ini में सेट के बिना उपलब्ध हैं।

इसके अलावा, PHP 7.0, एएसपी टैग की के रूप में: <%, %> और स्क्रिप्ट टैग <script language="php"> पीएचपी से हटा दिया जाता है।

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