PHP kodlama soru?

5 Cevap

Aşağıdaki aşağıdaki kod aynı şeyi yapmak ve kodlama yaparken bu yüzden hangisinin daha iyi olup olmadığını mı? Ve PHP kodu kaşlı ayraçlar eksik olduğunda için bir isim var mı?

PHP kodu.

<?php if (isset($_POST['email'])) { echo $_POST['email']; }?>
<?php if (isset($_POST['email'])) echo $_POST['email'];?>

5 Cevap

Şahsen ben her zaman can kaşlı ayraçlar with kaşlı kullanmak ifadeleri yazmak. Örneğin kod almak:

if (UserIsLoggedIn())
    ShowCreditCardDetails();

Şimdi bazı amatör kodlayıcı birlikte geliyor ve kullanıcı oturum zaman da başka bir şey yapmak istiyorsa:

if (UserIsLoggedIn())
    WriteAuditLog();
    ShowCreditCardDetails();

Hiçbir kaşlı mevcut olduğunda sadece ilk ifadesi if idam olur çünkü sonra şimdi, ShowCreditCardDetails(), giriş yapmadın, kullanıcılar için çalıştırmak olacaktır. O olmuştu:

if (UserIsLoggedIn())
{
    ShowCreditCardDetails();
}

kaşlı tüm kod bloğu çalıştırılacak içine, çünkü bu olmazdı.

Ben bir if ifadesi yazarak sadece kısaltılmış yol var, bunun için bir isim var inanmıyorum. Ben aynı zamanda kod bloğu ve orijinal deyimi dışında kendi hatları üzerinde kaşlı ayraçlar koymak Not - sadece okunabilirliği yardımcı olur.

Bu durumda can, ikinci sürümü ile gitmek. Eğer parantez atlayabilirsiniz nedeni Kontrol ifadenin vücut, tek bir ifade içeriyorsa, parantez gerek kalmamasıdır:

if (isset($_POST['email'])) 
    echo $_POST['email'];

Eğer komut uzatmak ve bu konuda unuttum Ama tabii bu sorunlara yol açabilir:

if (isset($_POST['email'])) 
    echo $_POST['email'];
    echo $_POST['foo'];

Burada, echo $_POST['foo']; not if açıklamada bulunan yerdir. Benzer şudur:

 <?php if (isset($_POST['email'])) echo $_POST['email'];  echo $_POST['foo'];?>

Her iki durumda da, echo $_POST['foo']; olursa olsun if maddesinin idam edilecek.


Eğer bir şablonda bu kullanmak ve sadece ayarlı ise bir alanı yazdırmak istiyorsanız, bu kod bu kısa parçasını uzatmak olası değildir. Yani bu durumda, "kısa" versiyonu ince olmalıdır.

Update:

Çıkmamış bir kullanıcı girişini çıkışını çok tehlikeli olabilir. NEVER güven kullanıcı girişi.

Eğer tam olarak aynı şeyi yapar küme parantezleri kullanmak istemiyorum ama ondan sonra durursa ilk ; ve ardından kod sonra değil sadece beri (sizin örnekte farketmez artık deyimi ise on; içeride). Şahsen, kısayolları bu tür nefret ediyorum.

Blok deyim sayısı tek ise. Hiçbir kıvırcık parantez koymak gerekir.

Ama, aynı zamanda tek bir deyim için kıvırcık parantez koyarsanız. Kod okunabilir formatta olacaktır. başkalarının kolayca anlayabileceği.

<?php
if (isset($_POST['email']))
 {
 echo $_POST['email']; 
 }
?> 

Şimdi kod girintileri olacaktır.

"Daha iyi kodlama" gibi bir şey yoktur. Bu anlaşma meselesi. Favori coding standard seçin ve kurallar bulunuyor izleyin.

http://pear.php.net/manual/en/standards.php
http://framework.zend.com/manual/en/coding-standard.html

örnekler ve daha fazlası için php coding standard için google