<?php
$a=1;
?>
<?=$a;?>
O que <?=
significa exatamente?
;
é redundante; como as respostas sugerem que esse atalho se expande para echo
um ponto-e-vírgula adicionado ao final, conforme os documentos php .
<?php
$a=1;
?>
<?=$a;?>
O que <?=
significa exatamente?
;
é redundante; como as respostas sugerem que esse atalho se expande para echo
um ponto-e-vírgula adicionado ao final, conforme os documentos php .
Respostas:
É uma abreviação para <?php echo $a; ?>
.
É ativado por padrão desde a versão 5.4, independentemente das php.ini
configurações.
<?=
em todo o projeto <?php echo
nã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 ).
É uma abreviação para isso:
<?php echo $a; ?>
Eles são chamados de tags curtas; veja o exemplo 2 na documentação .
short_open_tag = On
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 .
<?= $a ?>
é o mesmo que <? echo $a; ?>
, apenas abreviação de conveniência.
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.
É um atalho para <?php echo $a; ?>
se short_open_tag
s estiverem ativados. Ref: http://php.net/manual/en/ini.core.php
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