Booleans
Booleans (불리언)
bool 타입은 값이 딱 두 개뿐이에요. 참과 거짓, 즉 진릿값을 표현하는 타입이죠. 가질 수 있는 값은 true 아니면 false 둘뿐입니다.
Syntax (문법)
bool 리터럴을 쓸 때는 true나 false 상수를 사용해요. 그리고 이 둘은 대소문자를 가리지 않아요.
<?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로 취급돼요.
booleanfalse그 자체integer0(영)float0.0과-0.0(영)- 빈 문자열
"", 그리고 문자열"0" - 원소가 하나도 없는 배열(array)
- 단위 타입(unit type)
NULL(값이 설정되지 않은 변수 포함) - bool로의 캐스팅 동작을 오버로드하는 내부 객체들. 예를 들어 값이
0인GMP객체 같은 거예요.
이 밖의 모든 값은 true로 취급돼요(resource와 NAN을 포함해서 말이죠).
Warning
-1도true로 취급돼요. 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)
?>