1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida PHP + HTML

Discussão em 'Web Development' iniciada por Gurzi, 13 de Julho de 2007. (Respostas: 9; Visualizações: 614)

  1. Gurzi

    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??
     
  2. CoolMaster

    CoolMaster Power Member

    Não chega ao browser, o PHP evita que esse html seja enviado.
     
  3. Warlord

    Warlord [email protected] Member

    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...
     
  4. Gurzi

    Gurzi Power Member

    ok, entao quer dizer que aquele html so vai ser printado se o if der true...

    Bah,... que complicacao dos diabos :P
     
  5. HecKel

    HecKel The WORM

    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
     
  6. Warlord

    Warlord [email protected] Member

    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...
     
  7. Gurzi

    Gurzi Power Member


    Porque preferes a forma como mostrei primeiro ???
     
  8. Warlord

    Warlord [email protected] Member

    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 ;)
     
  9. msdevweb

    msdevweb Power Member

    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: 13 de Julho de 2007
  10. Gurzi

    Gurzi Power Member


    Sim , es um bacano.

    Thnks :)
     

Partilhar esta Página