PHP में '<?=' का अर्थ क्या है?




syntax (7)

<?php

$a=1;

?>
<?=$a;?>

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


<?=$a; ?>

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

<?php echo $a; ?>

चूंकि यह दोहराने के लिए कोई भी मूल्य नहीं जोड़ता है, इसका अर्थ है 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;
}

पार्सर टोकन की सूची से , documentation


<?= $a ?> <? echo $a; ?> जैसा ही है <? echo $a; ?> <? echo $a; ?> सुविधा के लिए सिर्फ shorthand <? echo $a; ?>


यह इसके लिए एक लघुरूप है:

<?php echo $a; ?>

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


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

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


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

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


यह <?php echo $a; ?> लिए शॉर्टकट <?php echo $a; ?> <?php echo $a; ?> अगर short_open_tag एस सक्षम हैं। रेफरी: http://php.net/manual/en/ini.core.php





syntax