Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP 이중 부정(!!) 연산자의 개념과 활용법

PHP 이중 부정(!!) 연산자란?

PHP에서 이중 부정(Double Not) 연산자는 NOT 연산자(!)를 두 번 연달아 사용하는 표기법입니다. 동작 원리는 간단합니다. 첫 번째 !가 값을 반전시켜 불리언(Boolean)으로 변환하고, 두 번째 !가 다시 한 번 반전시켜 최종적으로 해당 값의 진리값(truthiness)에 해당하는 순수한 불리언 결과를 반환합니다.

쉽게 말해, 어떤 값이 '참으로 평가되는 값'이면 true를, '거짓으로 평가되는 값'이면 false를 얻게 되는 것입니다. 이는 값을 명시적인 불리언 타입으로 캐스팅하는 데 유용하게 활용됩니다.

예제 1: 문자열에 적용하기

다음은 이중 부정 연산자를 문자열 값에 적용하는 기본 예제입니다.

<?php
   $str = "0.1";
   echo "값 = $str";
   $res = !!$str;
   echo "\n이중 부정된 값 = $res";
?>

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

값 = 0.1
이중 부정된 값 = 1

문자열 "0.1"은 빈 문자열이나 "0"이 아니므로 참(truthy)으로 평가됩니다. 따라서 이중 부정 연산의 결과로 1, 즉 true가 출력된 것입니다.

예제 2: floatval()로 변환한 숫자에 적용하기

이번에는 문자열을 floatval() 함수로 실수형 숫자로 변환한 뒤, 이중 부정 연산자를 적용해 보겠습니다.

<?php
   $str = "100.56";
   echo "문자열 = $str";
   $num = floatval($str);
   echo "\n숫자(문자열에서 변환됨) = $num";
   $res = !!$num;
   echo "\n이중 부정된 값 = $res";
?>

실행 결과는 다음과 같습니다.

문자열 = 100.56
숫자(문자열에서 변환됨) = 100.56
이중 부정된 값 = 1

100.56은 0이 아닌 숫자이므로 참으로 평가되며, 이중 부정 연산의 결과 역시 true(1)가 됩니다.

이중 부정 연산자의 주요 활용 사례

  • 불리언 캐스팅: 임의의 값을 (bool)$value 형변환 대신 !!$value로 간결하게 불리언 값으로 변환할 수 있습니다.
  • 0은 거짓, 그 외 숫자는 참: 숫자 00.0은 거짓(falsy)으로 평가되어 결과가 false(빈 값)가 됩니다.
  • 조건 검사 단순화: 변수에 유효한 값이 들어 있는지 확인한 결과를 깔끔한 true/false로 정리할 때 유용합니다.

정리

PHP의 이중 부정(!!) 연산자는 첫 번째 !가 값을 불리언으로 반전시키고, 두 번째 !가 이를 다시 반전시켜 원래 값의 진리 여부를 나타내는 불리언을 반환하는 문법입니다. 코드를 더 간결하게 작성하면서도 명확한 불리언 결과를 얻고 싶을 때 활용할 수 있는 실용적인 연산 방식입니다.