Php kapatmak veya kapatmak için


14

Ben php dosyalarını kapatmak değil (özellikle php 7 ile) tavsiye edilir okudum ?>

WP php dosyalarımın çoğu şu şekilde bitiyor:

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Kapanış etiketini kaldırmalı ve böyle bir şey almalı mıyım

<?php get_sidebar(); ?>
<?php get_footer(); 

dosyalarımın sonunda?


2
Eğer kapalı php etiketinden sonra hiçbir şey yoksa, tamamen tamam, Laravel gibi birçok çerçevede gözlemlediğim gibi, dosyaların sonunda php etiketini kapatmıyorlar ve bu arada, WordPress çekirdek dosyaları da aynı şekilde takip etti desen ve sonunda php etiketi kapalı değil, bu yüzden WordPress kodlama stilini takip etmeli ve onları kapatmamalıyız.
Amirmasoud

1
Trac'ta muhtemel bilet: # 10633
Sven

Yanıtlar:


19

Evet, lütfen PHP etiketlerini sadece PHP 7 ile değil, PHP 5 ile de kapatınız.

Nedeni, etiketi kapatırsanız, etiketten sonra olan herhangi bir şey, hatta boş bir satır çıktıya gönderilir ve PHP'nin üstbilgileri göndermesini ve ayrıca çerezin ayarlanmasını, çalışmayı yönlendirmesini, feed'in geçerli olmasını, ve bunun gibi.

Sanırım hiç böyle bir mesajla karşılaştın

Üstbilgi bilgileri değiştirilemiyor - zaten satırda (çıkış ... 'da başladı ...) tarafından gönderilen üstbilgiler ...

?>Dosyanın sonundaki bir kapanış bunun nedeni olabilir.


1
Bunun doğru cevap olduğuna inanıyorum. Şablonumu başlangıçta aldığım alt çizgiler bile son güncellemedeki kapanış etiketini kaldırdı.
IXN

@IXN Dosyanın tamamı PHP ise ve bu nedenle tek bir PHP kod bloğundan oluşuyorsa (PHP kod bloğu dosyanın sonunda örtülü olarak kapatılırsa) doğrudur. Ancak, birden fazla PHP kod bloğunuz varsa ve sorunuzdaki örnekte belirtildiği gibi HTML ve PHP'yi karıştırıyorsanız, TheDeadMedic'in cevabında belirttiği gibi PHP kod bloğunu açıkça kapatmalısınız.
MrWhite

Son istisna kodu bloğunu html izliyorsa tek istisna olduğunu düşünüyorum. Ancak dosyadaki son semboller?> İse bunlar atlanabilir / çıkarılmalıdır. Ya da anlıyorum.
IXN

Kapanış PHP etiketini atlamanın (veya dahil etmenin) ana nedeni, geliştirme sırasında aptalca hatalar vermekten kaçınmaktır. Yukarıda belirtildiği gibi, tamamen bir PHP dosyası için, bu yanlışlıkla sonuçlanan yanlışlıkla çıktıları önleyebilir. HTML çıktısını ve PHP'yi zaten karıştıran bir dosya için bu hataya neden olamaz. Ancak, bu ikinci durumda kapanış PHP etiketinin ihmal edilmesi hataları ortaya çıkarma potansiyeline sahiptir, çünkü artık HTML içeriğini eklemeden önce PHP etiketini açıkça kapatmayı hatırlamanız gerekir - bu tamamen PHP kod dosyasında yaptığınız bir şey değildir.
MrWhite

WP kaynağına bakarsanız, PHP'nin (çoğunun) sondaki PHP etiketini atladığını göreceksiniz. Ancak, şablon dosyaları (HTML ve PHP kod bloklarını karıştıran) her zaman kapanış PHP etiketini içerir.
MrWhite

11

Özel örneğiniz göz önüne alındığında, kapanış etiketini yani bir satır içindeki tek satırlık işlev çağrılarını tutacağım. Tutarlıdır ve netliğe yardımcı olur (aynı şekilde WordPress , diziler için virgül sonrasını öneriyor ) - aksi takdirde geliştirici olmayan bir dosyanın dosyanızı alıp eklemeye başlayıp başlamadığını hayal edin:

<?php get_footer();

<div>What the hell am I doing wrong?</div>

Bununla birlikte, diğer tüm dosyalar (işlevler, içerirler vb.) İçin tavsiye kesinlikle iyi bir fikirdir:

<?php // Start of file

class MY_Class {
    function just_do_it() {
    }
}

// Bye bye closing tag

Daha temiz buluyorum ve diğerlerinin de belirttiği gibi, korkunç "başlıklar zaten gönderildi" riski yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.