Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Substituição de "<?php" por "<?=" dá erro

Produto <?= echo $nome; ?>, <?= echo $preco?>, adicionado com sucesso!

O código acima não é válido no XAMP 3.2.2 e devolve o seguinte erro no navegador:

Parse error: syntax error, unexpected 'echo' (T_ECHO) in C:\xampp\htdocs\loja\adiciona-produto.php on line 7

Só funciona quando eu tiro o <?= e coloco o <?php mesmo. Alguma ideia do motivo disso acontecer? Versão mais atual do php? Obrigado.

7 respostas
A partir da 7.0.0 as tags ASP <%, %>, <%= e a script tag <script language="php"> foram removidas do PHP

Changelog: https://secure.php.net/manual/pt_BR/language.basic-syntax.phptags.php

solução!

Tenta somente <?= $preco ?>.

O sinal de "=" já substituí o "echo".

Oi Rodrigo

Beleza?

O código php <?php echo $nome; ?> e o código <?= $nome ?> são mesma coisa.

É só uma taxonomia diferente para renderizar a variável em tela. Em resumo o <?= $variavel ?> é um atalho para <?php echo $variavel; ?>.

Portanto, o que você escreveu <?= echo $nome ?> não funcionará.

Espero ter ajudado.

Saudações galera, tudo bem com vocês? Para usar short tags é necessário verificar se no arquivo php.ini a opção está ativa. Sugiro encontrar o arquivo na sua instalação do PHP modificar a tag

short_open_tag=On

Reiniciar o serviço e testar

<?= preco ?>

Espero que a dica ajude. Abraços.

Somente as tags ASP <%, %>, <%= e a script tag < script language="php"> nas versões de PHP inferiores a 7.0.0 necessitam da short_open_tag=on.

A tag <?= sempre será exibida independente do php.ini

"A tag <?= sempre está disponível, independente do da configuração short_open_tag ini." Fonte: https://secure.php.net/manual/pt_BR/language.basic-syntax.phptags.php

O Rodrigo Messias falou que está usando o XAMP 3.2.2, não sei qual versão do PHP é utilizada nessa versão, por isso sugeri a verificação do arquivo php.ini.

Abraços.

Valeu pessoal, obrigado pelas respostas. Ajuram-me a entender o que estava acontecendo. Na verdade <?= é apenas um atalho para <?php echo... menos verbosidade. Obrigado pelas respostas.