프로그래밍 언어/PHP

PHP: 조건문 (if, switch)

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';
}

더 읽을거리

PHP: 반복문 (for, while)

https://www.inflearn.com/course/php7-reboot

https://www.inflearn.com/course/php7-oop

PHP 카테고리 목차 및 문서 정리

2020년, PHP 언어가 가지는 의미

https://www.php.net/manual/en/