HTML'den Kaçmak
PHP bir dosyayı çözümlerken, hangi bölümü yorumlayıp hangi bölümü
yorumlamadan geçeceğine açılış ve kapanış etiketlerine bakarak
karar verir. PHP'nin bu şekilde çalışıyor olması, PHP'nin
çesitli türde birçok belgenin içine gömülebilmesini sağlar, çünkü PHP
başlangıç ve bitiş etiketlerinin dışında kalan her şey PHP çözümleyicisi
tarafından gözardı edilir. Çoğu zaman, bu örnekte olduğu gibi PHP'nin
HTML içine gömülmüş olduğunu göreceksiniz.
Daha gelişmiş yapılar da kullanmanız mümkündür:
Örnek 1 - Gelişmiş önceleme
<?php
if ($ifade) {
?>
<strong>Bu önerme doğrudur.</strong>
<?php
} else {
?>
<strong>Bu önerme yanlıştır.</strong>
<?php
}
?>
Bu beklendiği gibi çalışacaktır, çünkü PHP, ?> kapanış
etiketi ile karşılaştığında, tekrar bir açılış etiketi ile karşılaşana
kadar bulduğu herşeyi (kapanış etiketinden sonraki satırsonu karakteri
hariç - bkz,
deyim
ayırma) çıktılayacaktır. Buradaki örnek oldukça basit, ancak
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 ile kullanılabilecek dört farklı açılış ve kapanış etiketi çifti
vardır. Bunlardan ikisi, <?php ?> ve <script language="php">
</script> her zaman kullanılabilir durumdadır. Diğer ikisi, kısa
etiketler ve ASP tarzı etiketler olup
php.ini yapılandırma dosyası içersinden açılıp kapatılabilirler. 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.
Örnek 2 - PHP Açılış ve Kapanış Etiketleri
1. <?php echo 'XHTML ya da XML belgeleri sunacaksanız, böyle yapın'; ?>
2. <script language="php">
echo 'bazı düzenleyiciler (FrontPage gibi) işlem
yönergelerini sevmezler';
</script>
3. <? echo 'Bu en basit, SGML işlem yönergesidir'; ?>
<?= ifade ?> Bu "<? echo ifade ?>" için bir kısayoldur.
4. <% echo 'İsterseniz ASP tarzı etiketler kullanabilirsiniz'; %>
<%= $degisken; # Bu "<% echo . . ." %> için bir kısayoldur.
Bir ve iki numaralı örneklerde gözüken etiketler her zaman
kullanılabilirler. Bu ikisinden birincisi en geniş kullanıma sahip olanı
ve en çok tercih edilenidir.
Kısa etiketler (üçüncü gibi) 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 (dördüncü örnek) php.ini
dosyasında asp_tags yapılandırma
yönergesiyle etkinleştirilmişlerse kullanılabilirler.
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.
PHP 5.3'ten itibaren izin verilmektedir.