PHP, web geliştirme alanında en sık kullanılan yazılım dillerinden birisi. Bu dilin en önemli özelliklerinden biri, farklı sınırlama yöntemleri sunması. PHP açılış ve kapanış etiketlerine kısaca bir göz atalım:
<?php ?>
<?= ?>
<? ?>
<% %>
PHP’yi daha verimli kullanmak için bu etiketlerin farklarını ve önemini anlamak gerekir. Bu yazımızda, PHP etiketlerini efektif kullanmayı öğreneceğiz.
Neden Kısa PHP Etiketlerini Kullanmamalıyız?
Kısa PHP etiketleri kolaylık ve hızlı kod yazmak için daha kullanışlı olabilir. Fakat çoğu hosting ve sunucuda PHP.ini konfigürasyonunda varsayılan olarak devre dışı bırakılır. Bu kısa etiketlerin çalışması için PHP.ini konfigürasyonunda short_open_tag
seçeneğinin aktifleştirilmesi gerekir. Bu yüzden, her PHP sunucusunda kesinlikle çalışacak tek yöntem . Eğer PHP’nizi kontrol edemediğiniz bir sunucuya dağıtmayı düşünüyorsanız, her zaman
<?php ?>
yaklaşımını kullanmalısınız.
Kısa PHP Echo Etiketi ve PHP.ini
<?php echo() ?>
PHPPHP’de <?=
etiketi PHP yapılandırmasında short_open_tag
seçeneği etkin olsa da olmasa da kullanılabilir, o yüzden üstteki yerine bu kısa yolu güvenle kullanabilirsiniz.
Eğer sadece kendiniz için kod yazıyor ve kullanacağınız PHP yapılandırmasını kontrol edebiliyorsanız, kısa etiketleri daha kullanışlı bulabilirsiniz. Ama unutmayın ki <? ?>
etiketi XML bildirimleriyle çakışabilir. Ayrıca <% %>
etiketi aslında ASP tarzıdır.
PHP Kapanış Etiketleri ve Potansiyel Sorunları
Saf PHP dosyasına (örneğin, sadece bir class (sınıf) tanımı içeren bir dosya) kapanış ?>
etiketini eklerken, ardında boş satırlar bırakmamaya dikkat edin. PHP yorumlayıcısı kapanış etiketinden sonra tek bir satır sonu karakterini güvenli bir şekilde “çalıştırabiliyor” olsa da, diğer satır sonları tarayıcıya çıkış yapabilir. Eğer daha sonra HTTP başlıkları yazıyorsanız, işler daha da karışabilir.
PHP PSR-2
PSR-2 kodlama standardı, PHP’de en iyi uygulamaları belirlemek için oluşturulmuş PHP PSR kodlama standartlarının bir parçasıdır. PSR-2 kodlama standartları, sadece PHP kodu içeren dosyalarda ?>
kapanış etiketinin kullanılmamasını tavsiye eder. Bu önerinin temel sebebi, kapanış etiketinden sonra yanlışlıkla bırakılan boşluk veya satır sonları gibi karakterlerin tarayıcıya gönderilmesini engellemektir. PHP’de, ?>
etiketinin ardından gelen herhangi bir karakter, otomatik olarak HTML çıktısının bir parçası olarak kabul edilir. Bu durum, özellikle HTTP başlıkları işlenirken problem yaratabilir.
Bir PHP dosyasının sonunda kalan gereksiz karakterler, HTTP başlıklarının doğru bir şekilde işlenmesini engelleyebilir. HTTP protokolünde, başlıkların içerik gönderilmeden önce tamamlanması gerektiğinden, herhangi bir çıktı başlıkların gönderilmesini imkansız hale getirir. Bu, başlık zaten gönderildi hatası (headers already sent) olarak bilinen ve oturum başlatma, çerez ayarlama veya sayfa yönlendirmesi gibi işlemleri etkileyebilen bir soruna yol açar.
Bu nedenle, PSR-2, bu tür yaygın hataları önlemek ve kodun temizliğini korumak amacıyla, sadece PHP kodu içeren dosyalarda kapanış etiketinin kullanılmamasını önerir. Bu yaklaşım, kodun sonunda istenmeyen boşluk veya satır sonu karakterleri nedeniyle oluşabilecek olası sorunları ortadan kaldırır ve PHP betiklerinin daha stabil ve hatasız çalışmasına katkı sağlar.
PHP Etiketleri ve Uyumluluk
Eski sürümler için web uygulaması yazarken, kapanış ?>
etiketleri ile html <!doctype>
etiketi arasında yeni satır bırakmamaya özen gösterin. IE’nin eski sürümleri, doctype bildiriminden önce herhangi bir boşluk, yeni satırlar dahil, karşılaşırlarsa farklı hatalar çıkabilir. Bu, IE’nin yeni sürümleri ve diğer, daha gelişmiş tarayıcılarda geçerli değil. (Yani, IE dışındaki her tarayıcı için.)