PHP 스위치 문
$myVar = 'green';
if ($myVar === 'red') {
echo 'It is red';
} elseif ($myVar === 'blue') {
echo 'It is blue';
} elseif ($myVar === 'green') {
echo 'It is green';
}
이것은 switch 문을 사용하여 다시 작성할 수 있습니다. 일치시키려는 각 조건에는 일치시키려는 변수를 전달하는 경우가 있습니다. 케이스 안에 조건이 일치하면 실행할 코드를 넣습니다. 그런 다음 중단을 추가해야 합니다. 그렇지 않으면 코드가 나머지 switch 문의 일치 항목을 계속 확인합니다.
$myVar = 'green';
switch ($myVar) {
case 'red':
echo 'It is red';
break;
case 'blue':
echo 'It is blue';
break;
case 'green':
echo 'It is green';
break;
}
기본 케이스
switch 문의 매우 유용한 기능은 다른 경우가 일치하지 않는 경우 기본값을 허용한다는 것입니다. 때때로 당신은 변수가 무엇인지 알지 못하고 이 극단적인 경우를 포착할 수 있습니다. 추가 코드 실행을 의도적으로 중지하기 위해 예외를 throw하는 데 사용할 수도 있습니다.
$myVar = 'orange';
switch ($myVar) {
case 'red':
echo 'It is red';
break;
case 'blue':
echo 'It is blue';
break;
case 'green':
echo 'It is green';
break;
default:
throw new Exception('It is not a matching colour');
}
// Fatal error: Uncaught Exception: It is not a matching colour
여러 대소문자 일치
때로는 일치하는 여러 사례에 대해 동일한 작업을 수행하고 싶을 때가 있습니다. if 문을 사용하려면 코드를 여러 번 반복하거나 조건에 or(
||
)를 사용해야 합니다.$myVar = 'green';
if ($myVar === 'red' || $myVar === 'green') {
echo 'It is red or green';
}
switch 문에서 여러 경우를 차례로 나열한 다음 다음에 중단과 함께 실행할 코드를 추가하여 이 작업을 쉽게 수행할 수 있습니다.
$myVar = 'green';
switch ($myVar) {
case 'red':
case 'green':
echo 'It is red or green';
break;
case 'blue':
echo 'It is blue';
break;
}
스위치 케이스에서 복귀
때로는 switch 문에서 break가 필요하지 않습니다. 이것은 switch 문에서 직접 반환할 때입니다. 아래 예제에는 일치하는 대소문자의 결과를 반환하는 함수에 switch 문이 있습니다.
function findTheColour($colour)
{
switch ($colour) {
case 'red':
return 'It is red';
case 'blue':
return 'It is blue';
case 'green':
return 'It is green';
default:
return 'It does not match';
}
}
echo findTheColour('green'); // It is green
일부 개발자(나와 같은)는 코드를 분리하는 것이 좋기 때문에 switch 문에 중단이 없는 것이 이상해 보인다고 생각한다는 것을 알고 있습니다.
대체 구문
if 문과 마찬가지로 대괄호 대신 콜론을 사용하고 끝 스위치로 스위치를 끝낼 수도 있습니다.
switch ($myVar):
case 'red':
echo 'It is red';
break;
case 'blue':
echo 'It is blue';
break;
case 'green':
echo 'It is green';
break;
endswitch;
원한다면 대소문자 뒤에 콜론 대신 세미콜론을 사용할 수도 있습니다.
case 'red';
대신 배열 사용
어떤 사람들은 약간 장황하게 보일 수 있기 때문에 switch 문을 사용하는 것을 좋아하지 않습니다. 간단한 시나리오인 경우 옵션을 제공하기 위해 어레이를 사용하는 잠재적인 대안이 있습니다.
$colours = [
'red' => 'It is red',
'green' => 'It is green',
'blue' => 'It is blue',
];
$myVar = 'green';
echo $colours[$myVar]; //It is green
위의 내용은 빨간색, 녹색 또는 파란색에 대해 잘 작동하지만 주황색과 같은 알 수 없는 색상인 경우 정의되지 않은 인덱스 오류가 발생합니다.
null 병합 연산자(PHP 7.0 이상)를 사용하여 이 오류를 포착하고 기본 응답을 반환할 수 있습니다.
echo $colours[$myVar] ?? 'It does not match';
성냥
PHP 8.0은 match 문을 도입했습니다. 더 짧은 구문을 제공하고 값을 반환합니다. Brent의 match와 switch on의 차이점에 대한 훌륭한 기사가 있습니다.
Reference
이 문제에 관하여(PHP 스위치 문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/chrisrhymes/the-php-switch-statement-2imn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)