Booleans

Booleans (불리언)

bool 타입은 값이 딱 두 개뿐이에요. 참과 거짓, 즉 진릿값을 표현하는 타입이죠. 가질 수 있는 값은 true 아니면 false 둘뿐입니다.

Syntax (문법)

bool 리터럴을 쓸 때는 truefalse 상수를 사용해요. 그리고 이 둘은 대소문자를 가리지 않아요.

<?php

$foo = True; // assign the value TRUE to $foo

var_dump($foo); // bool(true)
?>

보통은 bool 값을 돌려주는 연산자식의 결과를 그대로 제어 구조(control structure)에 넘겨주는 식으로 쓰게 돼요.

<?php

$action = "show_version";
$show_separators = true;

// == is an operator which tests
// equality and returns a boolean
if ($action == "show_version") {
    echo "The version is 1.23";
}

// this is not necessary...
if ($show_separators == TRUE) {
    echo "<hr>\n";
}

// ...because this can be used with exactly the same meaning:
if ($show_separators) {
    echo "<hr>\n";
}
?>

Converting to boolean (불리언으로 변환하기)

값을 bool로 명시적으로 바꾸려면 (bool) 캐스트를 쓰면 돼요. 그런데 사실 이건 대부분 필요하지 않아요. 값을 논리 판단이 필요한 문맥에서 쓰면 자동으로 bool로 해석되거든요. 더 자세한 내용은 Type Juggling 페이지에서 다뤄요.

bool로 변환할 때 다음 값들은 전부 false로 취급돼요.

  • boolean false 그 자체
  • integer 0 (영)
  • float 0.0-0.0 (영)
  • 빈 문자열 "", 그리고 문자열 "0"
  • 원소가 하나도 없는 배열(array)
  • 단위 타입(unit type) NULL (값이 설정되지 않은 변수 포함)
  • bool로의 캐스팅 동작을 오버로드하는 내부 객체들. 예를 들어 값이 0GMP 객체 같은 거예요.

이 밖의 모든 값은 true로 취급돼요(resourceNAN을 포함해서 말이죠).

Warning -1true로 취급돼요. 0이 아닌 숫자라면 음수든 양수든 전부 마찬가지예요!

Example #1 Casting to Boolean

<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) "0");       // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>