if ~ elseif ~ else
if ~ elseif ~ else
문은 다른 언어와 크게 다르지 않습니다. 조건에 맞으면 if
, 안 맞으면 elseif, else
를 순차적으로 검사하고 처리합니다. 우리가 알아야 하는 것은 조건을 사용할 때, false
로 처리되는 것들이며, [], '', false, 0, null
과 같은 것들은 모두 거짓으로 판단됩니다.
// [], '', false, 0, null -> false
if (true) {
echo 'Hello, world';
}
// -> Bye
if (false) {
echo 'Hello, world';
} else {
echo 'Bye';
}
// -> Who are you?
if (false) {
echo 'Hello, world';
} elseif (true) {
echo 'Who are you?';
} else {
echo 'Bye';
}
비교, 논리 연산자의 반환 값은true
, 또는false
입니다. 조건문에서 비교, 논리 연산자를 많이 사용합니다.
변수 할당하기
조건을 사용하면서 변수에 값을 할당하는 것을 허용합니다.
// -> Hello, world
if ($message = 'Hello, world') {
echo $message;
}
switch ~ case
switch ~ case
구문은 if
와 치환이 가능하나, 사용할 때의 느낌이 다릅니다. 이는 여러 개의 값 중에 하나를 선택한다는 관점에서 접근하는 것이 좋습니다. 변수의 값에 따라 행동이 달라지고, break
로 블럭을 빠져나갈 수 있습니다. 다만 상황에 따라 case
를 연속적으로 사용하여 여러 개의 값을 처리할 수 있을지도 모릅니다. default
를 사용하여 기본 행동을 정의합니다.
$context = 1;
// -> Hello, world
switch ($context) {
case 1:
echo 'Hello, world';
break;
case 2:
echo 'Who are you?';
break;
default:
echo 'Bye';
}
위의 표현을 if
문으로 바꾼다면 다음과 같이 표현할 수 있습니다. 이와 같은 경우는 switch ~ case
를 쓰는 것이 의도를 조금 더 드러내기 좋을 수 있습니다. 하지만, 무엇을 사용하든 개발자의 몫입니다.
if ($context == 1) {
echo 'Hello, world';
} elseif ($context == 2) {
echo 'Who are you?';
} else {
echo 'Bye';
}
더 읽을거리
https://www.inflearn.com/course/php7-reboot