LARAVEL

[PHP] NULL 널 병합 연산자(??, ||, !)

litzoo 2024. 11. 14. 09:27

문득 php에서도 js처럼 변수를 설정할 수 있을까 궁금했다..

PHP에서 ??, ||, !는 모두 조건 처리나 값을 평가하는 데 쓰이는 연산자들이다.

각각의 역할은

1. ?? (Null Coalescing Operator)

  • ??는 널 병합 연산자라고 하며, PHP 7 이상에서 사용 가능합니다.
  • 변수가 존재하지 않거나 null일 때, 대체 값을 반환합니다.
  • 예시:
$username = $userName ?? 'Guest';

 

여기서 $userName이 null이거나 정의되지 않았다면 'Guest'가 $username에 할당됩니다.

그렇지 않으면 $userName의 값이 할당됩니다.

 

2. || (Logical OR Operator)

  • ||는 논리 OR 연산자로, 하나라도 true면 true를 반환합니다.
  • 주로 조건문에서 여러 조건 중 하나만 만족하면 되는 경우에 사용됩니다.
  • 예시:
if ($age < 18 || $isStudent) { 
	echo "Discount applies!"; 
}

 

$age가 18 미만이거나 $isStudent가 true일 경우 조건이 참이 되어 "Discount applies!"가 출력됩니다.

 

 

3. ! (Logical NOT Operator)

  • !는 논리 NOT 연산자로, boolean 값을 반대로 만듭니다.
  • true를 false로, false를 true로 바꾸는 역할을 합니다.
  • 예시:
$isLoggedIn = false; 
if (!$isLoggedIn) { 
	echo "Please log in!"; 	
}

여기서 $isLoggedIn이 false이므로 !$isLoggedIn는 true가 되어 "Please log in!"이 출력됩니다.

 
 

추가적으로: ??와 ||의 차이점

  • ??는 null이나 정의되지 않은 변수를 검사하는 데 주로 사용되고, ||는 단순히 true/false 논리 평가에 사용됩니다.
  • 예시:
$name = null;
echo $name ?? 'No name'; // "No name" 출력
echo $name || 'No name'; // ""(빈 문자열) 출력, `$name`이 false로 간주되지만 대체 값이 반환되진 않음

 

이렇게 각각의 연산자는 조건을 평가하거나 값을 처리할 때 유용하게 사용할 수 있습니다.

728x90
반응형