본문 바로가기
PHP

[PHP] 조건과 조건문 종류 및 사용법

by teamnova 2024. 2. 17.

안녕하세요 오늘은 PHP에서 사용할 수 있는 다양한 조건문들에 대해 알아보겠습니다.

 

먼저 조건문이란?

프로그램의 흐름을 제어하기 위해 사용되는 구문으로 주어진 조건에 참(true) 또는 거짓(false) 여부에 따라 다른 "코드 블록"을 실행하도록 합니다.

PHP에서 사용되는 조건문은 if, else, elseif 그리고 switch와 3항 연산자가 있습니다.

 

먼저 if문에 대해서 알아보겠습니다.

if : 가장 기본적인 조건문으로 조건이 참일 때만 실행할 특정 코드 블록을 정의한다.

if(조건){
	// 조건이 참일 때 실행될 코드 블록
}

 

else : if문과  함께 사용되면 if의 조건이 거짓말일 때 실행될 코드 블록을 정의한다.

if (조건) {
    // 조건이 참일 때 실행될 코드 블록
} else {
    // 조건이 거짓일 때 실행될 코드 블록
}

 

else if : 여러 조건을 순차적으로 검증하기 위해서 사용하고 특정 조건에 해당하는 코드 블록을 실행한 후 그 뒤에 있는 나머지 elseif 와 else의 코드 블록은 무시된다.

if (조건1) {
    // 조건1이 참일 때 실행될 코드 블록
} elseif (조건2) {
    // 조건2가 참일 때 실행될 코드 블록
} else {
    // 모든 조건이 거짓일 때 실행될 코드 블록
}

 

 

여기 if문에서 조건은 값이 될 수도 있고 값을 반환하는 메소드나 연산식이 될 수도 있습니다.

조건에 들어갈 수 있는 다양한 것들을 알려드리겠습니다.

 

1. 비교 연산자 사용

// 등식 비교 : == , ===
$a == $b // 두 변수의 값이 동일한지 확인합니다. 즉 타입이 달라도 타입 변환을 수행한 뒤 값이 같다면 true를 반환하고 아닐 경우 false를 반환합니다.
$a === $b // 두 변수의 타입과 값이 같은지 확인합니다. 값이 같더라도 타입이 다르면 false를 반환합니다.

// (불일치) 등식 비교 : != , !==
$a != $b // 두 변수의 값이 동일하지 않은지 확인합니다. 즉 타입이 달라도 타입 변환을 수행한 뒤 값이 같다면 false를 반환하고 아닐 경우 false를 반환합니다.
$a !== $b // 두 변수의 타입과 값 또는 타입이 다른지 확인합니다. 값과 타입이 모두 같다면 false를 반환합니다.

// 부등식 비교
$a > $b // $a의 값이 $b보다 큰지 비교 후 맞다면 true 반환
$a < $b // $a의 값이 $b보다 작은지 비교 후 맞다면 true 반환
$a >= $b // $a의 값이 $b보다 크거나 같은지 비교 후 맞다면 true 반환
$a <= $b // $a의 값이 $b보다 작거나 같은지 비교 후 맞다면 true 반환

 

2. 논리 연산자 사용

// AND (&& 또는 and)
조건1 && 조건2
조건1 and 조건2 // and 양쪽의 조건이 둘다 true를 반환한다면 true를 반환하고 두 조건 중 하나라도 false를 반환한다면 false를 반환한다.

// OR (|| 또는 or)
조건1 || 조건2
조건1 or 조건2 // or 양쪽의 조건 중 하나라도 true를 반환한다면 true를 반환하고 주 조건 다 false를 반환한다면 false를 반환한다.

// XOR (xor)
조건1 xor 조건2 // xor 양쪽의 조건 중 하나만 true를 반환한다면 true를 반환하고 두 조건 다 true를 반환하거나 false를 반환하면 false를 반환합니다.

// NOT (!)
!$a // $a가 true라면 그에 반대인 false를 반환한다. 반대로 false라면 그의 반대인 true를 반환한다.
!isString($str) // 메소드의 반환 값에 따라 반대 값인 boolean 값을 반환한다.

 

3. 변수 사용

// boolean 변수
$a = true; // 그 자체로 true로 사용됩니다.
$b = false; // 그 자체로 false로 사용됩니다.

// 정수형 변수
$a = 1; // if($a) 이런식으로 사용된다면 정수형 변수 중 0이 아닌 것은 true로 간주한다.
$b = 0; // if($b) 이런식으로 사용된다면 정수 0은 false로 간주한다.

// 문자열 변수
$a = ""; // if($a) 이런식으로 사용된다면 문자열 ""은 false로 간주한다.
$b = "0"; // if($b) 이런식으로 사용된다면 문자열 "0"은 false로 간주한다.
$c = "abc"; // if($c) 이런식으로 사용된다면 문자열 변수 중 "", "0"이 아닌 것은 true로 간주한다.

 

4. 메소드의 반환 값

// 반환 값이 있는 메소드 ( 메소드 마지막에 return을 사용해서 값 반환 )
isString($str), isNum($integer) 등 메소드 형식을 갖춘 것도 조건문의 조건으로 사용된다.

ex ) if(isNum($integer)) , if(isString($str))

 

 

 

다음은 switch 문입니다.

switch : 조건에서 반환된 값과 각 case의 값을 비교한 뒤 일치하는 case의 코드부터 실행한다. 만약 일치하는 case가 없다면 default의 코드부터 실행한다. break를 활용해 다양한 조건에 해당하는 코드들을 같이 실행시킬 수 있다.

switch (조건) {
    case 값1:
        // 조건의 값이 값1과 일치할 때 실행될 코드
        break; // 값1에 해당하는 코드를 실행한 뒤 switch문을 탈출,
        	//탈출하지 않을 경우 다음 break를 만나기 전까지 모든 코드를 실행한다.
    case 값2:
        // 조건의 값이 값2와 일치할 때 실행될 코드
        break;
    default:
        // 어떤 case의 값도 일치하지 않을 때 실행될 코드
}

 

여기 switch문에서의 조건도 if와 같이 값을 반환하는 어떤 것이든 사용할 수 있다.

삼항

 

 

마지막으로 삼항 연산자입니다.

삼항 연산자 : 조건에 따라 두 값 중 하나를 반환하는 간결한 형식으로 사용됩니다. (if else 문의 간소화된 형태이다.)

조건 ? 코드1 : 코드2; // 조건이 일치하면 코드1을 실행하고 조건이 불일치 하면 코드2를 실행한다.

예시로 들면
$a > $b ? function1() : function2(); // 이렇게 조건에 따라 메소드를 실행할 수도 있고($a가 $b보다 크다면 function1()을 실행한다.)

$result = $a > $b ? $a : $b; // 변수에 값을 할당할 수도 있다.($a가 $b보다 크다면 $result에 $a를 할당한다.)

 

 

여기까지 PHP에서 사용하는 여러 조건문에 대해 알아봤습니다.

다음에는 PHP에서 사용하는 반복문에 대해 알아보겠습니다~