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

Misturando html com php - qtd de tags php

Olá, para evitar abrir ficar abrindo e fechando tantas tags "<?php" eu geralmente uso apenas o echo para gerar meu html, dessa forma:

<?php include 'cabecalho.php';
include 'conecta.php';
include 'banco-produto.php';

$produtos = listaProdutos($conexao);

echo "<table class='table table-striped table-bordered'>";

foreach ($produtos as $produto){
    echo "<tr>
        <td>{$produto['nome']}</td>
        <td>{$produto['preco']}</td>
    </tr>";
}
echo "</table>";

include 'rodape.php';

como podem ver eu não abri nenhuma vez a tag php. Existe alguma recomendação quanto a isso? ou é só questão de gosto mesmo?

3 respostas

Olá Israel, tudo bom?

Eu recomendo você utilizar códigos html fora do PHP, assim você pode deixar seu código mais semântico e mais legível, este link http://br.phptherightway.com/ fala da maneira certa de como utilizar o PHP, da uma olhadinha.

Espero ter lhe ajudado, abraços!

solução!

Fala Israel, beleza?

Na prática, como vc ja percebeu, vai dar na mesma. Mas, como nosso amigo Mateus comentou, isso pode atrapalhar bastante na legibilidade do seu código e, por consequencia, na manutenção dele futuramente.

Sem contar que dessa forma estamos gastando processamento atoa, certo? O php terá que escrever a string do echo toda vez que a página for atualizada/gerada. Enquanto no HTML puro isso faria parte já da propria pagina.

Além desses fatores de legibilidade, semantica e eficiencia também abrimos margem para possiveis bugs. Repare que é muito fácil esquecer as aspas de algum echo, algo como:

echo "<table class='table table-striped table-bordered'>;

E isso ocasionaria um problema para gerar sua pagina =)

Qualquer duvida, compartilha com a gente =)

Olá André, obrigado por sua resposta. Quanto a questão da visibilidade não sei se concordo muito, particularmente, visualmente prefiro ver um único "echo" a um milhão de chaves abrindo e fechando, que as vezes ficam meio confusas. Mas com o argumento da performance você me convenceu, realmente parece ser ilógico gastar processamento do servidor com algo que já estaria sendo enviado ao cliente. Obrigado.