Evadarea din HTML

Totul ce se află în afara perechilor de tag-uri de deschidere și închidere este ignorat de către parsatorul PHP, ceea ce permite fișierelor PHP să aibă conținut mixt. Aceasta permite PHP să fie încorporat în documente HTML, de exemplu pentru a crea șabloane.

<p>Acesta va fi ignorat de PHP și afișat în browser.</p>
<?php echo 'În timp ce acesta va fi parsat.'?>
<p>Acesta va fi de asemenea ignorat de PHP și afișat în browser.</p>
Aceasta funcționează conform așteptărilor, deoarece când PHP întâlnește tag-ul de închidere, pur și simplu începe să afișeze tot ce găsește (cu excepția trecerii la linie nouă ce urmează imediat după acesta - vezi separarea instrucțiunilor) până când dă de un alt tag de deschidere, doar dacă nu este în mijlocul unei declarații condiționale, caz în care interpretatorul va determina rezultatul condiționalului înainte de a lua o decizie peste ce să sară. Vezi următorul exemplu.

Utilizarea structurilor cu condiții

Example #1 Evadare avansată folosind condiții

<?php if ($expression == true): ?>
  Aceasta se va afișa dacă expresia este adevărată.
<?php else: ?>
  Altfel aceasta va fi afișat.
<?php endif; ?>
În acest exemplu PHP va sări peste blocurile unde conționalul nu este îndeplinit, chiar dacă sunt în afara tag-urilor PHP de deschidere/închidere, PHP sare peste ele conform condițiilor, deoarece interpretatorul PHP va sări peste blocurile condiției neîndeplinite.

Pentru afișarea blocurilor mari de text, în general ieșirea din parsatorul PHP este mai eficientă decât trimiterea întregului text prin echo sau print.

În PHP 5 sunt disponibile cel mult cinci perechi diferite de tag-uri de deschidere și de închidere, în dependență de modul cum este configurat PHP. Două dintre ele, <?php ?> și <script language="php"> </script> sunt mereu disponibile. De asemenea există tag-ul scurt de afișare <?= ?>, care este întotdeauna disponibil în PHP 5.4.0 și ulterior.

Celelalte două sunt tag-urile scurte și tag-uri în stil ASP. Ca atare, în timp ce unii oameni găsesc tag-urile scurte și tag-urile stil ASP comode, ele sunt mai puțin portabile, și în general nerecomandate.

Notă:

De asemenea rețineți că dacă încorporați PHP în XML sau XHTML va trebui să folosiți tag-urile <?php ?> pentru a vă conforma standardelor.

PHP 7 încetează susținerea tag-urilor ASP și <script language="php">. Ca atare, vă recomandăm să utilizați doar <?php ?> și <?= ?> la scrierea codului PHP pentru maximizarea compatibilității.

Example #2 Tag-uri PHP de deschidere și închidere

1.  <?php echo 'dacă vrei să folosești cod PHP în documente XHTML sau XML
                folosește aceste tag-uri'
?>

2.  Puteți utiliza tag-ul scurt de afișare pentru a <?= 'afișa aceasta' ?>.
    El este întotdeauna activat în PHP 5.4.0 și ulterior, și este echivalent cu
    <?php echo 'afișa aceasta' ?>.

3.  <? echo 'acest cod este între tag-uri scurte și va funcționa doar dacă '.
            
'opțiunea short_open_tag este activată'?>

4.  <script language="php">
        
echo 'anumitori editori (precum FrontPage) nu le place
              să proceseze instrucțiuni între aceste tag-uri'
;
    
</script>
    Această sintaxă este eliminată în PHP 7.0.0.

5.  <% echo 'Opțional puteți folosi tag-uri stil ASP'; %>
    Codul între aceste tag-uri <%= $variable; %> este o scurtătură pentru acest cod <% echo $variable; %>
    Aceste două sintaxe au fost eliminate în PHP 7.0.0.

Tag-uri scurte (exemplul trei) sunt disponibile numai când sunt activate cu ajutorul directivei short_open_tag din fișierul de configurare php.ini, sau dacă PHP a fost configurat cu opțiunea --enable-short-tags .

Tag-uri stil ASP (exemplul cinci) sunt valabile numai când sunt activate cu ajutorul directivei asp_tags din fișierul de configurare php.ini și au fost eliminate în PHP 7.0.0.

Notă:

Folosirea tag-urilor scurte ar trebui evitată în timpul dezvoltării aplicațiilor sau bibliotecilor destinate redistribuirii, sau implemetării pe servere PHP asupra cărora nu aveți control, deoarece tag-urile scurte s-ar putea să nu fie susținute de acel server. Pentru cod portabil, redistribuibil, asigurați-vă că nu folosiți tag-uri scurte.

Notă:

În PHP 5.2 și versiunile anterioare, parsatorul nu permite ca tag-ul de deschidere <?php să fie singurul element din fișier. Aceasta este permis începând cu PHP 5.3 cu condiția să existe unul sau mai multe caractere spațiu gol după tag-ul de deschidere.

Notă:

Începând cu PHP 5.4, tag-ul scurt de afișare <?= este mereu recunoscut și valid, indiferent de setarea short_open_tag.