2011-03-17 5 views
2

내가 이해하지 못하는 기존 코드가 있습니다.PHP 약식 약식 if/else if - 기본

일반적으로 구성 변경이 필요하고 읽기가 더 어려워서 속기가 마음에 들지 않습니다. 이런 이유로 나는 그것에 익숙하지 않다. 기존 코드는 속기를 좋아하는 사람이 작성했습니다. 나는이 발생하면

는 :

 
if($type == 'a') $type = 'Type A'; 
else if($type == 'b') $type = 'Type B'; 
else if($type == 'c') $type = 'Type C'; 

을 나는 경우 단순로 읽고, 다른 문자열합니다. 그러나 나는 실제로 다른 결과를 얻고, 나는 그것이 매우 간단하다고 생각

 
if($type == 'a') { 
    $type = 'Type A'; 
} else if($type == 'b') { 
    $type = 'Type B'; 
} else if($type == 'c') { 
    $type = 'Type C'; 
} 

: 나는 그것을 변환. 위의 두 발췌 문장의 차이점은 무엇입니까?

+0

결과가 어떻게됩니까? –

+0

두 개의 코드 스 니펫은 동일합니다. – Matthew

+0

btw, 위의 코드가 실제 코드를 잘 나타내면 스위치 문을 살펴보아야합니다. – Erik

답변

4

그들은 완전히 동일합니다. 그 차이는 다른 곳에 있어야합니다.

이전 코드와 이후 코드의 복사/붙여 넣기입니까?

은 내가 명확성을 위해 스위치의 경우에 그 변환하는 경향이 것,하지만 anubhava에 동의 :

switch ($type) { 
    case 'a': 
    $type = 'Type A'; 
    break; 

    case 'b': 
    $type = 'Type B'; 
    break; 

    case 'c': 
    $type = 'Type C'; 
    break; 

    default: 
    break; 
} 
+0

설명과 권장 사항을 보내 주셔서 감사 드리며 아마도 스위치로 변경해야한다는 데 동의합니다. – Jeff

1

그들은 동일해야합니다.

는 와우하는 testfile 위했다 ... 나는 테스트 파일을 만들 수 있습니다,하지만 난 그 사실에 변화를 가져올 것이라고 생각하지 않습니다

<?php 
$type = 'a'; 

if($type == 'a') $type = 'Type A'; 
else if($type == 'b') $type = 'Type B'; 
else if($type == 'c') $type = 'Type C'; 
echo $type . "\n"; 


$type = 'b'; 

if($type == 'a') $type = 'Type A'; 
else if($type == 'b') $type = 'Type B'; 
else if($type == 'c') $type = 'Type C'; 
echo $type . "\n"; 


$type = 'c'; 

if($type == 'a') $type = 'Type A'; 
else if($type == 'b') $type = 'Type B'; 
else if($type == 'c') $type = 'Type C'; 
echo $type . "\n"; 


$type = 'a'; 

if($type == 'a') { 
    $type = 'Type A'; 
} else if($type == 'b') { 
    $type = 'Type B'; 
} else if($type == 'c') { 
    $type = 'Type C'; 
} 
echo $type . "\n"; 

$type = 'b'; 

if($type == 'a') { 
    $type = 'Type A'; 
} else if($type == 'b') { 
    $type = 'Type B'; 
} else if($type == 'c') { 
    $type = 'Type C'; 
} 

echo $type . "\n"; 
$type = 'c'; 

if($type == 'a') { 
    $type = 'Type A'; 
} else if($type == 'b') { 
    $type = 'Type B'; 
} else if($type == 'c') { 
    $type = 'Type C'; 
} 
echo $type . "\n"; 

하고 결과를 어디에 실제로 같은.

Type A 
Type B 
Type C 
Type A 
Type B 
Type C 
+0

편집하기 전에 아무도 보지 않기를 바랍니다.). 코드는 동일합니다. – Nanne

+0

우수, 감사합니다! 내 이상한 결과를 초래하는 오류가 있어야합니다. – Jeff

1

내가 먼저 필요 php switch case 코드 위에 간단하게 생각합니다.

코드의 두 버전 차이점을 찾지 못했습니다. 그것은 switch case가 많은 if, else if, else if 문보다 더 읽기 쉽게 만든다.

+0

추천 해 주셔서 감사합니다. – Jeff

0

그들은 동일합니다. 오류는 다른 곳에 있습니다.

1

실제로는 shorthand 구문이 아닙니다. 이것은 if/else if/else에 해당하며 각 섹션에는 하나의 명령문 만 있으므로 {} 집합이 필요하지 않습니다.

줄 바꿈으로 포맷 할 때 좀 더 명확입니다 :

if($type == 'a') 
    $type = 'Type A'; 
else if($type == 'b') 
    $type = 'Type B'; 
else if($type == 'c') 
    $type = 'Type C'; 
+0

설명해 주셔서 감사합니다. – Jeff

1

$ 유형이 바람직하지를 반환? 이 경우, 나는 것 : 당신은 항상 바람직하지 않은 무엇을 볼 수있는 그런 식으로

switch ($type) { 
    case 'a': 
    $type = 'Type A'; 
    break; 

    case 'b': 
    $type = 'Type B'; 
    break; 

    case 'c': 
    $type = 'Type C'; 
    break; 

    default: 
    $type = 'Other Type'; 
    break; 
} 

:

if($type == 'a') { 
    $type = 'Type A'; 
} else if($type == 'b') { 
    $type = 'Type B'; 
} else if($type == 'c') { 
    $type = 'Type C'; 
} else { 
$type = 'Other Type'; 
} 

하지만 위의 사람들과 함께 총 계약에있어이 실제로 당신이로 번역해야 데이터는 상황에 따라 항상 기본, esp를 dev 모드로 설정합니다.