Ben aynı hat üzerinde mola koyabilirsiniz

4 Cevap php

Ben 300'den fazla harf ifadeleri olan bir switch deyimi var.

  case 'hello': 
    { $say = 'some text'; }
        break;

case 'hi':
    { $say = 'some text'; }
        break;

Neden mola ayrı bir satırda her zaman olduğunu? Bu gerekli mi? Bana Bunu yapma hakkında sözdizimi kurallarına göre yanlış bir şey var mı:

  case 'hello': { $say = 'some text'; } break;
  case 'hi': { $say = 'some text'; } break;

4 Cevap

Aynı hat üzerinde mola sahip yanlış bir şey yoktur. Ayrıca parantez gerekmez.

Ancak yerine başka bir yöntem kullanmak, 300 vaka anahtar statment sahip daha değerlendirilerek, var. Değerler (bir dizi kullanarak) tuşlarından bir harita daha hızlı ve daha rahat olacaktır.

$myArray = array(
    'hello' => 'some text',
    'hi'    => 'some text',
);

if ( isset($myArray[$switchKey]) ){
    $say = $myArray[$switchKey];
}else{
    //default case
}

Hayır, PHP boşluk-duyarsız olduğunu. Noktalı virgül ve ayrı ifadeleri parantez.

Aynı hat üzerinde birden fazla ifadeleri yerleştirmek için, ve switch deyimi açık kontrol akışını yapmak için iyi değil stil çünkü mola ayrı bir satıra genellikle.

Lütfen örnekler mümkündür de. Arada, parantez, bu durumda gerekli olduğunu sanmıyorum, siz de yazabilirsiniz:

switch ($myVar) {
    case 'hello': $say = 'some text'; break;
    case 'hi': $say = 'some text'; break;
    default: $say = 'something'; break;
}

bir kenara olarak, ben kodlama stillerini yeniden yönlendirilmesinden php_codesniffer gibi bir şey kullanarak öneririm.