Duvida PHP + HTML

Gurzi

Power Member
Boas pessoal..

Quando voces misturam php + html surge-me uma duvida.

if ($categories_description != '') {
?>
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><?php echo tep_draw_separator(); ?></td>
</tr>
<tr class="CategoriesDescriptionTop">
<td class="CategoriesDescriptionTop"><?php echo $categories_description; ?></td>
</tr>
<tr>
<td><?php echo tep_draw_separator(); ?></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
</table></td>
</tr>
<?php
}


Por exemplo, neste caso..

O HTML esta fora do php, ou seja, o browser devera ler em qualquer dos casos nao ??

Imaginem que o if retorna false, mas o php acaba e o browser le o html nao??
 
talvez te seja mais facil entender assim:

<?php

if ($categories_description != '') {
echo '<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>'; echo tep_draw_separator(); echo '</td>
</tr>
<tr class="CategoriesDescriptionTop">
<td class="CategoriesDescriptionTop">'; echo $categories_description; echo' </td>
</tr>
<tr>
<td>'; echo tep_draw_separator(); echo '</td>
</tr>
<tr>
<td>'; echo tep_draw_separator('pixel_trans.gif', '100%', '10'); echo '</td>
</tr>
</table></td>
</tr>';
}

como ves e cm teres varios echos dentro do if...
 
Complicação porquê? :P

É apenas uma alternativa ao echo, tens a condição na mesma, se resultar true, entra no if e o browser envia isso, se der false o browser nem chega a receber essa informação.

Lembra-te que o PHP corre do lado do servidor e só manda para o browser aquilo que ele quiser. Lá por teres isso em HTML descoberto não implica que seja sempre enviado para o browser.

HecKel
 
concordo k o codigo dakela maneira nao e a forma mais simples de entender... com experiencia chegas la facilmente agora pra kem esta a dar os primeiros passos e 1 bocado mais complicado ententer k o codigo nao e executado mesmo estando fora de tags php...
 
concordo k o codigo dakela maneira nao e a forma mais simples de entender... com experiencia chegas la facilmente agora pra kem esta a dar os primeiros passos e 1 bocado mais complicado ententer k o codigo nao e executado mesmo estando fora de tags php...


Porque preferes a forma como mostrei primeiro ???
 
eu nao disse k prefiro a forma como mostraste, por acaso ate prefiro na forma como postei, torna a compreencao e a indentacao mais facil.

mas em termos de performance a 1ª maneira e uns miseros msecs mais rapida ;)
 
Basta perceberes uma coisa, uma explicaçao mais simples:
Pensa:

o php como server-side language, ao ser executado, vai ler o teu ficheiro .php todo e colocar os resultados num "buffer" temporario, so no final de terminada a sua execuçao é que é apresentado o output. ou seja, como a execuçao da "compilaçao" do php é top-down, o php ao chegar ao if, se a condiçao for falsa, ignora literalmente o html que esta dentro desse if, e passa para o final do mesmo. Ou seja, sera impossivel o html aparecer no tal "buffer" de output. "buffer" esse que sera o que tu vais ver no browser :)

mais simples? talvez nao :) lol
 
Última edição:
Basta perceberes uma coisa, uma explicaçao mais simples:
Pensa:

o php como server-side language, ao ser executado, vai ler o teu ficheiro .php todo e colocar os resultados num "buffer" temporario, so no final de terminada a sua execuçao é que é apresentado o output. ou seja, como a execuçao da "compilaçao" do php é top-down, o php ao chegar ao if, se a condiçao for falsa, ignora literalmente o html que esta dentro desse if, e passa para o final do mesmo. Ou seja, sera impossivel o html aparecer no tal "buffer" de output. "buffer" esse que sera o que tu vais ver no browser :)

mais simples? talvez nao :) lol


Sim , es um bacano.

Thnks :)
 
Back
Topo