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.