Ifadeleri 'else if' Nasıl doğru PHP biçimlendirmek?

12 Cevap php

Ben çok-bir-buharlı sıcak-ve-kodlama oturumları rastlamak uzun süren bir sorun oldu.

One person codes this way another codes that way. So after much push and pull I'm curious... Is there any correct way of phrasing a PHP 'IF ELSE' statement?

Şahsen ben kullanmak:

if ($variable == 'setvalue')
{
    $variable = executefunctiononvariable($variable);
} else {
    $variable = executedifferentfunctiononvariable($variable);
}

Ben gibi diğer seçenekleri ile sunulmaktadır oldum sanki çok argüman sonra:

if ($variable == 'setvalue')
{
    $variable = executefunctiononvariable($variable);
}
else
{
    $variable = executedifferentfunctiononvariable($variable);
}

VEYA

if ($variable == 'setvalue')
    $variable = executefunctiononvariable($variable);
else
    $variable = executedifferentfunctiononvariable($variable);

VEYA

if ($variable == 'setvalue') {
    $variable = executefunctiononvariable($variable);
} else {
    $variable = executedifferentfunctiononvariable($variable);
}

12 Cevap

Ben şahsen eğer / else sonuncusu gibi benim biçimi:

if ($variable == 'setvalue') {
    $variable = executefunctiononvariable($variable);
} else {
    $variable = executedifferentfunctiononvariable($variable);
}

Sizin sürüm aklımda, tür 1 ve 3 bir karışımıdır.

Ben de tüm bunları yapmak kodlama ile çalıştım ve bir standart birinin hiç duymadım.

Php web sitesi son birini kullanır: http://ca2.php.net/manual/en/control-structures.elseif.php

If ifadesi her zaman çok kısa olacak zaman ben de bazı durumlarda ikinci örneği kullanın. Ben # 1 yapacağım (1 den fazla hat her biri) uzuyor bir possibiltiy hiç varsa. Daha sonra {} eklemek için zor çünkü ben mümkün olduğunda 2. kaçınmak için deneyin.

Ben son birini kullanın:

if ($variable == 'setvalue') {
    $variable = executefunctiononvariable($variable);
} else {
    $variable = executedifferentfunctiononvariable($variable);
}

Söyleniyor, sadece emin consistent yapmak, seninle olan bir oldukça önemsizdir.

Cevap: projenizin Kodlama Standardı göre. Eğer bir hesabınız yoksa, vb Zend, PEAR, birini kabul

Son hemen hemen her zaman tercih edilir:

if (condition) {
    statements
} else {
    statements
}

: Verdiğiniz kod ben yazma düşünün rağmen

$variable = ('setvalue' === $variable)
    ? executefunctiononvariable($variable)
    : executedifferentfunctiononvariable($variable);

Yukarıda birkaç avantajı vardır:

  1. Bu ifadenin niyet $ değişkene bir değer atamak olduğu hemen anlaşılıyor.
  2. Soldaki literal ile denklik koşulu yazarak, hataların bir bütün sınıfın yayılmasını azaltmak. Bu hileler, en azından, C geri uzanır.
  3. Dizeleri için denklik kontrol ederken, "===" operatörü (tip kontrolü yok / gerekli cast) biraz daha hızlıdır.

I (2) her zaman yapmak için kullanılan ancak Sun'ın kodlama sözleşmeler (4) kullanmak gibi Java programlama beni yenildim. Yani şimdi ben çok (4) alışkınım. Son zamanlarda C # biraz yapıyorum ve (siir, burada biz tekrar gitmek) Varsayılan (2) kullanmak gibi görünüyor.

Alışkanlığı PHP I (4) yapmak ama (2) çok iyi. Ben sevmiyorum (1) at all.

Ve (3) tehlikelidir. Şahsen ben parantez bile onun sadece bir deyim için langauge sözdizimi tarafından gerekli gerektiğini düşünüyorum. Eğer belaya girmeden kaydeder. O Perl bellekten bunu nasıl olduğunu düşünüyorum.

Insanlar bunu yaparken ben de hate nedir:

if (something) {
  // do something
}
else if (something else) {
}

Bu bir kaçık vermem. Yani sadece (2) bulmak ve (4) kabul edilebilir. Ben tercihen dil için sözleşmeler içinde, sürece sürekli bitti gibi, hangisinin umurumda değil.

En önemli şey, bir proje üzerinde çalışan programcılar oldukça fazla same kodlama kurallarına uygun olmasıdır. Yani bir toplantı var ve birini ya da diğerini seçin, ve sonra onunla sopa.

Doğru ya da yanlış yolu yoktur, bu bir görüştür. Şahsen ben en sonuncuyu beğendim (1TBS???). Ben parantez olmadan birini asla kullanmayın, ben kötü tarzı genel olarak düşünün.

Eğer kod çalışmak için gidiyoruz, diğer insanlar için gerçekten bu soruya cevap verebilir sadece insanlar. Bu everone bir kodlama standardı kabul etmesi önemlidir. Hangi seçtiğiniz standart herkes onu kullanıyor olmasından daha az önemli değildir.

ARMUT kodlama standardı the PHP kodlama standardı edilir. Böyle Zend, Doktrin, Symfony, Horde ve çok, çok daha fazla gibi diğer projelerde bulabilirsiniz gibi ben buna alışmak için öneriyoruz.

http://framework.zend.com/manual/en/coding-standard.coding-style.html#coding-standard.coding-style.control-statements.if-else-elseif

Ben personnally tercihim:

if(something){
    doSomething();
}
elseif(somethingElse){
    doSomethingElse();
}
else{
    doAnotherThing();
}

Kısacası, yaparken hiç correct yoludur. Sürece çalışır gibi, ne hissediyorum iyi olduğunu, kullanabilirsiniz. Sen birini almak ve sonra ona sopa gerekir, onu tanımak için kod kolaylaştıracaktır.

Eğer bir ifade veya fonksiyon ile sınırlıdır "{" karakterini yoksa tek şey vardır.

Eğer sadece değişkenleri tanımlamak için arıyorsanız Ayrıca, aşağıdaki kodu kullanabilirsiniz:

$variable = (CONDITIONAL STATEMENT) ? "It was true" : "It was false";

Unutma

if (expression):
   // code goes here
elseif (another expression):
   // code goes here
else:
   // code goes here
endif;

Ben bazı etiket çorba pişirme olduğumda ben şahsen bu yapısı gibi.

Benim şirkette kullanın:

if ($variable == 'setvalue')
{
    $variable = executefunctiononvariable($variable);
}
else
{
    $variable = executedifferentfunctiononvariable($variable);
}

Bir standart olduğu gibi ben gerçekten önemli aslong değil

Gerçekten benim için ... sadece önemli değil. Sana sorunlar olmadan iki şekilde okumak mümkün olması gerektiğine inanıyoruz. Kaşlı ayraç yeni bir hat üzerinde olup olmadığını gerçekten önemli mi? Bir boşluk kapatma parantezi sonra veya varsa bu gerçekten önemli mi?

Sürece kod okunabilir hale en az bir girişimde bulunulmadı ki böyle bir şekilde yapıldığı gibi, ben gerçekten sadece umurumda değil.

Doğru bir yolu var mı? Peki orada olsaydı, o zaman neden farklı yapıyor seçenekleri var?