HTML'den Kaçmak
Başlangıç ve bitiş etiketlerinin dışında kalan her şey PHP çözümleyicisi
tarafından gözardı edilerek PHP dosyalarının karışık içeriğe sahip olabilmesi
sağlanır. Çoğu zaman, bu örnekte olduğu gibi PHP'nin HTML içine gömülmüş
olduğunu göreceksiniz.
Bu beklendiği gibi çalışır, çünkü PHP çözümleyicisi ?> kapanış etiketine
rastlayınca (hemen ardından bir satırsonu karakteri gelmesi durumu hariç -
bak:
deyim
ayırma) başka bir açılış etiketine rastlayıncaya kadar (etiketin koşullu
bir ifadenin ortasında olması durumu hariç - bu durumda çözümleyici neyin
atlanacağına karar vermek için ifadenin sonucun saptamaya çalışacaktır) herşeyi
çıktılamaya başlar. Aşağıdaki örneğe bakınız:
Yapıların koşullu kullanımı
Örnek 1 - Koşul kullanan gelişmiş önceleme
<?php if (ifade == true): ?>
İfade doğruysa bu gösterilir.
<?php else: ?>
İfade doğru değilse bu gösterilir.
<?php endif; ?>
?>
Bu örnekte PHP, açılış/kapanış etiketlerinin dışında olsa bile koşulun
karşılanmadığı blokları atlayacaktır, çünkü PHP yorumlayıcısı koşulun
karşılanmadığı durumda koşulun içinde bulunan blokları atlar.
Büyük metin bloklarını görüntülemek istediğimizde PHP'yi çözümleme
kipinden çıkartmak çoğu zaman tüm metni echo ya da
print ile görüntülemekten daha verimlidir.
PHP 5'te, PHP'nin yapılandırılışına bağlı olarak kullanılabilecek beş
farklı açılış ve kapanış etiketi çifti vardır. Bunlardan ikisi,
<?php ?> ve <script language="php"> </script> her zaman
kullanılabilir durumdadır. Ayrıca, bir de PHP 5.4.0 ve sonrasında
kullanılabilen <?= ?>
kısa echo etiketi vardır.
Diğer ikisi, kısa etiketler ve ASP tarzı
etiketlerdir. Bazı kişiler kısa etiketleri ve ASP
tarzı etiketleri daha kullanışlı bulmaktadır, ancak bu ikisi daha az
taşınabilir olduklarından genellikle tavsiye edilmemektedir.
Bilginize:
Bir diğer önemli nokta, PHP'yi XML ya da XHTML içine gömmek istiyorsanız
standartlarla uyumlu kalabilmek için <?php ?> etiketlerini
kullanmanız gerektiğidir.
PHP 7'de ASP ve
<script language="php">
etiketleri için destek
kaldırılmıştır. Sonuç olarak, PHP kodunu yazarken azami uyumluluk için
sadece <?php ?>
ve <?= ?>
etiketlerini kullanmanızı öneriyoruz.
Örnek 2 - PHP Açılış ve Kapanış Etiketleri
1. <?php echo 'XHTML ya da XML belgeleri sunacaksanız,
bu etiketleri kullanın'; ?>
2. <?= 'bu metni basmak' ?> için kısa echo etiketini kullanabilirsiniz.
PHP 5.4.0 ve sonrasında daima etkin olup
<?php echo 'bu metni basmak' ?> ile eşdeğerdir.
3. <? echo 'bu kod kısa etiketlerin içindedir, fakat sadece '.
'short_open_tag etkinse çalışır'; ?>
4. <script language="php">
echo 'bazı düzenleyiciler (FrontPage gibi) bu etiketlerin
içindeki işlem yönergelerini sevmezler';
</script>
5. <% echo 'İsterseniz ASP tarzı etiketler kullanabilirsiniz'; %>
<%= $değişken; %> etiketleri içindeki kod, <% echo $değişken; %>
için bir kısayoldur. Bu son iki etiket çifti PHP 7.0.0'da kaldırılmıştır.
Kısa etiketler (üçüncü örnek) yalnızca php.ini içersinde short_open_tag yapılandırma
yönergesiyle etkinleştirilmişlerse ya da PHP,
--enable-short-tags
derleme seçeneği ile
yapılandırılmışsa kullanılabilirler.
ASP tarzı etiketler (beşinci örnek) php.ini
dosyasında asp_tags yapılandırma
yönergesiyle etkinleştirilmişse kullanılabilir. Bunlar
PHP 7.0.0'da kaldırılmıştır.
Bilginize:
Geliştirdiğiniz uygulamaları ya da kütüphaneleri başkalarına
dağıtacaksanız ya da bu uygulamaları denetiminizde olmayan PHP
sunucularına kuracaksanız kısa etiketleri kullanmaktan kaçınmalısınız,
çünkü hedef sunucu kısa etiketleri desteklemiyor olabilir. Kodlarınızın
taşınabilir ve yeniden dağıtılabilir olması için, alışkanlıkla kısa
etiketleri kullanmadığınızdan emin olun.
Bilginize:
PHP 5.2 ve öncesinde, çözümleyici, bir dosya içindeki tek şey olarak
<?php
başlangıç etiketine izin vermezdi.
Açılş etiketinden sonra bir veya daha fazla boşluk karakteri olması
durumunda PHP 5.3'ten itibaren izin verilmektedir.
Bilginize:
PHP 5.4 itibariyle, kısa echo etiketi <?=
short_open_tag seçeneğine
bakılmaksızın daima geçerlidir ve tanınmaktadır.