논리값
이 타입은 가장 쉬운 타입니다.boolean은 논리값을 표현한다. TRUE 나 FALSE 값이 될수 있다.
Note: boolean 타입은 PHP 4부터 지원되었다.
문법
boolean 을 표현하기 위해서 키워드 TRUE 나 FALSE를 사용한다. 두 가지 모두 대소문자를 구별하지 않는다.
<?php
$foo = True; // assign the value TRUE to $foo
?>
보통은 boolean값을 돌려주는 몇 가지 연산자를 사용해서 그 값을 제어 구조로 전달한다.
<?php
// == is an operator which test
// 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 you can simply type
if ($show_separators) {
echo "<hr>\n";
}
?>
boolean으로 변환
명시적으로 boolean 값으로 변경하려면 (bool)이나 (boolean) 캐스트를 사용한다. 하지만, 대부분의 경우 이런 캐스트를 사용할 필요는 없다. 왜냐하면 그 값은 연산자나 함수 또는 제어구조가 boolean인자를 요구하면 자동으로 변환된다.
타입 저글링도 참고.
boolean로 변경할때, 다음값은 FALSE로 본다:
- boolean FALSE 자체
- integer 0 (zero)
- float 0.0 (zero)
- 비어있는 문자열과 문자열 "0"
- 아무 구성요소도 갖지 않는 배열
- 아무 멤버 변수도 갖지 않는 객체
- 특별한 타입인 NULL (변수를 unset하는 것도 포함)
Warning
모든 0이 아닌 (양수이든 음수이든) TRUE가 되는 것처럼 -1은 TRUE로 본다,
<?php
echo gettype((bool) ""); // bool(false)
echo gettype((bool) 1); // bool(true)
echo gettype((bool) -2); // bool(true)
echo gettype((bool) "foo"); // bool(true)
echo gettype((bool) 2.3e5); // bool(true)
echo gettype((bool) array(12)); // bool(true)
echo gettype((bool) array()); // bool(false)
?>