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

PHP 불리언(Boolean) 데이터 타입 완벽 가이드: TRUE와 FALSE의 모든 것

정의 및 사용법

불리언(Boolean)은 PHP의 스칼라(scalar) 데이터 타입 중 하나로, 값이 TRUE 또는 FALSE 둘 중 하나만 가질 수 있습니다. 이 두 값은 PHP에서 미리 정의된 상수입니다. 변수에 TRUE 또는 FALSE를 할당하는 순간 해당 변수는 불리언 변수가 됩니다.

기본 문법

<?php
//변수에 불리언 값을 리터럴로 할당
$var=TRUE;
?>

TRUE 값을 echo로 출력하면 1이 화면에 표시되지만, FALSE를 출력하면 아무것도 나타나지 않습니다. 반면 var_dump() 함수를 사용하면 데이터 타입(bool)과 값까지 함께 확인할 수 있어 디버깅에 유용합니다.

또한 불리언 상수는 대소문자를 구분하지 않습니다. 즉, TRUE, true, True는 모두 동일한 값으로 취급되며, FALSE 역시 마찬가지입니다.

논리 연산자와 불리언

논리 연산자는 비교 결과로 항상 불리언 값을 반환합니다. 다음 예제에서 비교 표현식의 결과가 TRUE이므로 1이 출력됩니다.

<?php
$gender="Male";
echo ($gender=="Male");
?>

형 변환(Casting)

모든 데이터 타입은 캐스팅 연산자인 (bool) 또는 (boolean)을 사용해 명시적으로 불리언으로 변환할 수 있습니다. 다만 대부분의 경우 조건문 등에서 값이 필요할 때 PHP가 자동으로 변환을 수행합니다.

형 변환 시 false로 변환되는 대표적인 값은 다음과 같습니다.

  • 정수 0-0
  • 실수 0.0
  • 빈 문자열 "" 및 문자열 "0"
  • 요소가 없는 빈 배열 array()
  • null

이 외의 값은 모두 true로 변환됩니다.

PHP 버전 지원

위에서 설명한 불리언 데이터 타입의 특성은 모든 버전의 PHP에 적용됩니다.

예제 1: echo와 var_dump()로 불리언 값 출력하기

<?php
$var=TRUE;
echo $var . "\n";
var_dump($var);
$var1=false;
echo $var1;
var_dump($var1);
?>

출력 결과

1
bool(true)
bool(false)

TRUE는 1로 출력되지만, FALSE는 아무것도 출력되지 않는 것을 확인할 수 있습니다. var_dump()는 타입과 값을 명확하게 보여줍니다.

예제 2: 논리 표현식의 불리언 결과 확인

<?php
$var=10;
var_dump($var>10);
var_dump($var==true);
?>

출력 결과

bool(false)
bool(true)

$var > 10은 10이 10보다 크지 않으므로 false가 되고, $var == true는 10이 true로 평가되어 true가 반환됩니다.

예제 3: 형 변환 연산자 활용하기

<?php
//0이 아닌 숫자는 true로 변환
$var=10;
$var1=(bool)$var;
var_dump($var1);
//0과 -0은 false로 변환
$var=0;
$var1=(bool)$var;
var_dump($var1);
//비어 있지 않은 문자열은 true로 변환
$var="PHP";
$var1=(bool)$var;
var_dump($var1);
//빈 문자열은 false로 변환
$var="";
$var1=(bool)$var;
var_dump($var1);
//요소가 있는 배열은 true로 변환
$var=array(1,2,3);
$var1=(bool)$var;
var_dump($var1);
//빈 배열은 false로 변환
$var=array();
$var1=(bool)$var;
var_dump($var1);
?>

출력 결과

bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

이처럼 값의 종류와 비어 있는지 여부에 따라 불리언 변환 결과가 달라진다는 점을 기억하면, 조건문 작성 시 발생할 수 있는 오류를 예방할 수 있습니다.