O que '<? =' Significa em PHP?


Respostas:


229

É uma abreviação para <?php echo $a; ?>.

É ativado por padrão desde a versão 5.4, independentemente das php.iniconfigurações.


1
Está disponível no php 7?
Zachdyer

4
Observe que o ponto e vírgula final não é necessário. Mas se, por qualquer motivo, você precisar voltar às tags clássicas, uma simples pesquisa / substituição <?=em todo o projeto <?php echonão seria suficiente. De qualquer forma, a partir de hoje, espero que vocês não tenham servidores de produção executando o PHP <5.6, pois essas versões não são mais mantidas ( versões suportadas pelo PHP ).
TwistO

47

É uma abreviação para isso:

<?php echo $a; ?>

Eles são chamados de tags curtas; veja o exemplo 2 na documentação .


12
Observe que todos os servidores não suportam tags curtas, conforme mencionado na resposta abaixo. Eles exigem php.ini para tershort_open_tag = On
Corey Ballou

17

Como não agregaria nenhum valor repetir isso echo, achei que você gostaria de ver exatamente o que significa no 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
        )
)

Você pode usar esse código para testá-lo:

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

Na lista de tokens do analisador , aqui está o link para T_OPEN_TAG_WITH_ECHO .


O token falhou em me dizer mais detalhes.
precisa saber é o seguinte


7

No PHP 5.4.0, <?= ?> estão sempre disponíveis mesmo sem o short_open_tag definido no php.ini.

Além disso, a partir do PHP 7.0, as tags ASP: <%, %> e a tag script <script language="php"> são removidas do PHP.




3

Espero que não seja preterido. Embora a escrita <? blah code ?>seja bastante desnecessária e confusa com XHTML,<?= não é, por razões óbvias. Infelizmente eu não uso, porque short_open_tag parece estar cada vez mais desativado.

Atualização: Eu uso <?=novamente agora, porque está ativado por padrão no PHP 5.4.0. Veja http://php.net/manual/en/language.basic-syntax.phptags.php

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.