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.

<p>Bu bölüm PHP tarafından gözardı edilecek ve tarayıcıda gösterilecektir.</p>
<?php echo 'Bu bölüm PHP tarafından çözümlenecektir.'?>
<p>Bu bölüm de PHP tarafından gözardı edilecek ve tarayıcıda gösterilecektir.</p>
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.