Wyskakiwanie z HTML
Wszystko na zewnątrz tagów PHP jest ignorowane przez parser, co pozwala plikom PHP
mieć mieszaną zawartość. To pozwala na zagnieżdżanie PHP w plikach HTML, na przykład
w celu stworzenia szablonu.
To działa tak, jak się spodziewano, ponieważ kiedy interpreter PHP natrafi na zamykający
znacznik ?>, poprostu zaczyna wyświetlać cokolwiek znajdzie (z wyjątkiem
bezpośrednio następującej nowej linii - zobacz
oddzielanie instrukcji)
dopóki nie natrafi na kolejny otwierający znacznik - chyba, że znajdzie się to wewnątrz
instrukcji warunkowej; w tym wypadku interpreter najpierw sprawdzi wynik instrukcji, aby
zdecydować co pominąć.
Zobacz kolejny przykład:
Wykorzystanie struktur z warunkami
Przykład #1 Zaawansowane wyskakiwanie przy użyciu warunków
<?php if ($expression == true): ?>
To pokaże się, jeżeli wyrażenie jest prawdziwe.
<?php else: ?>
W przeciwnym wypadku pokaże się to.
<?php endif; ?>
W tym przykładzie PHP pominie bloki, gdzie warunek nie jest spełniony, nawet
jeżeli są one poza tagami PHP. PHP pomija je odpowiednio do warunku,
ponieważ interpreter przeskakuje bloki zawarte w instrukcji, która nie została
spełniona.
Dla wyświetlania większych ilości tekstu, wyjście z trybu parsowania PHP
jest ogólnie rzecz biorąc bardziej wydajne niż wysyłanie całego tekstu przez
funkcje echo lub print.
W PHP 5 mamy do pięciu różnych par znaczników otwierających i zamykających,
dostępnych w PHP, w zależności od tego jak skonfigurowano PHP. Dwie z nich, <?php ?> i
<script language="php"> </script> są zawsze dostępne. Istnieje też krótkich
znacznik echo <?= ?>
, który jest zawsze dostępny w PHP 5.4.0 i nowszych.
Pozostałe dwa to krótkie znaczniki i znaczniki w stylu ASP.
Część osób postrzega krótkie znaczniki i znaczniki w stylu ASP
jako wygodne, jednakże są one mniej przenośne, i zasadniczo nie polecane.
Informacja:
Zauważ również, że jeśli zagnieżdzasz PHP w XML lub XHTML
musisz stosować znaczniki <?php ?> aby pozostać
w zgodzie ze standardami.
PHP 7 wycofało wsparcie dla tagów ASP i
znaczników <script language="php">
. W związku z tym zalecamy
używać wyłącznie tagów <?php ?>
and <?= ?>
,
aby maksymalnie zwiększyć kompatybilność kodu PHP.
Przykład #2 Znaczniki otwierające i zamykające PHP
1. <?php echo 'jeśli chcesz obsługiwać dokumenty XHTML lub XML,
użyj tych tagów'; ?>
2. Możesz użyć krótkiego znacznika echo do <?= 'wyświetlenia tego tekstu' ?>.
Jest on zawsze dostępny w PHP 5.4.0 i nowszych i jest odpowiednikiem
<?php echo 'wyświetlenia tego tekstu' ?>.
3. <? echo 'this code is within short tags, but will only work '.
'if short_open_tag is enabled'; ?>
4. <script language="php">
echo 'niektóre edytory (jak FrontPage) nie lubią
instrukcji przetwarzania';
</script>
Ta składnia została usunięta w PHP 7.0.0.
5. <% echo 'Możesz opcjonalnie użyć znaczników w stylu ASP'; %>
Kod w znacznikach <%= $zmienna; jest skrótem dla kodu <% echo $zmienna; %>
Obie te składnie zostały usunięte w PHP 7.0.0.
Krótkie znaczniki (trzeci przykład) są dostepne jedynie, kiedy są
włączone za pomocą dyrektywy konfiguracyjnej short_open_tag
w php.ini lub jeśli php zostało skonfigurowane
z opcją --enable-short-tags
.
Znaczniki w stylu ASP (piąty przykład) są dostępne
jedynie gdy zostaną włączone poprzez dyrektywę konfiguracyjną
asp_tags w php.ini i zostały usunięte w PHP 7.0.0.
Informacja:
Powinieneś unikać używania krótkich znaczników, kiedy rozwijasz aplikacje
lub biblioteki, które są nastawione na rozpowszechnianie lub pracujesz
na serwerach PHP, nad którymi nie masz kontroli, ponieważ krótkie znaczniki
mogą nie być obsługiwane na docelowym serwerze. Dla przenośnego,
rozpowszechnialnego kodu, miej pewność, aby nie użyć krotkich znaczników.
Informacja:
W PHP 5.2 i wcześniejszych, parser nie pozwalał, aby
znacznik otwierający <?php był jedynym znakiem w pliku.
Dozwolone jest to od PHP 5.3, pod warunkiem, że po tagu otwierającym znajduje
się jeden lub więcej białych znaków (np. spacja).
Informacja:
Począwszy od PHP 5.4, krótkie znaczniki <?= są zawsze rozpoznawane i
ważne, niezależnie od ustawień short_open_tag.