布尔型

这是最简单的类型。boolean 表达了真值,可以为 TRUEFALSE

注: 布尔类型是 PHP 4 引进的。

语法

要指定一个布尔值,使用关键字 TRUEFALSE。两个都不区分大小写。

<?php
$foo
= True; // assign the value TRUE to $foo
?>

通常你用某些运算符返回 boolean 值,并将其传递给控制流程

// == 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,用 (bool) 或者 (boolean) 来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制需要一个 boolean 参数时,该值会被自动转换。

参见类型戏法

当转换为 boolean 时,以下值被认为是 FALSE

所有其它值都被认为是 TRUE(包括任何资源)。

警告

-1 和其它非零值(不论正负)一样,被认为是 TRUE

<?php
var_dump
((bool) "");        // 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)
?>


add a note add a note User Contributed Notes
jasper at jtey dot com
06-Jun-2006 03:51
The following expressions are equivalent:
<?php
// setting true
$flag = true;
$flag = True;
$flag = TRUE;
$flag = 1==1;

// setting false
$flag = false;
$flag = False;
$flag = FALSE;
$flag = 1==2;
?>

The moral of the story is that boolean operators return a boolean value, i.e., "1==1" returns a boolean value of true.  Someone who is not aware of this may write a block of code such as:
<?php
// even number?
$num = 10;
if(
$num % 2 == 0){
 
$isEven = true;
}
else{
 
$isEven = false;
}
?>

when all that is needed is:
<?php
$num
= 10;
$isEven = $num % 2 == 0;
?>

Other examples, for illustrative purposes:
<?php
// two numbers
$a = 2;
$b = 3;
$aBiggerThanB = 2 > 3; // $aBiggerThanB is set to false

// lower case vowel check (corrected)
$c = "u";
$isVowel = $c == "a"|| $c == "e"|| $c == "i"|| $c == "o"|| $c == "u";
?>