ZetCode

PHP 布尔数据类型

最后修改于 2025 年 4 月 16 日

PHP bool 关键字表示布尔数据类型。布尔值在编程中用于决策。它们只能是 truefalse 值。布尔值用于条件语句和比较。

基本定义

bool 类型是 PHP 的标量数据类型之一。它表示逻辑运算中的真值。布尔值在 PHP 中是不区分大小写的常量。直接使用 truefalse 值。

布尔值通常是比较操作的结果。它们控制条件和循环中的程序流程。许多 PHP 函数返回布尔值以指示成功或失败。

语法:$var = true;$var = false;。 PHP 在布尔上下文中需要时会自动将值转换为布尔值。

基本布尔声明

此示例演示如何声明和使用简单的布尔变量。

basic_bool.php
<?php

declare(strict_types=1);

$isActive = true;
$isAdmin = false;

var_dump($isActive);
var_dump($isAdmin);

代码声明了两个布尔变量,分别赋值为 true 和 false。var_dump 函数显示了它们的类型和值。布尔值通常用作标志来表示二进制状态。

条件语句中的布尔值

此示例演示了在 if 语句中使用布尔值。

bool_conditional.php
<?php

declare(strict_types=1);

$hasPermission = true;

if ($hasPermission) {
    echo "Access granted.";
} else {
    echo "Access denied.";
}

if 语句直接检查布尔变量。 检查布尔值时不需要比较运算符。 当变量包含 true 时,条件评估为 true。

从函数返回布尔值

此示例显示了一个返回布尔值的函数。

bool_function.php
<?php

declare(strict_types=1);

function isEven(int $num): bool {
    return $num % 2 === 0;
}

$result = isEven(10);
var_dump($result);

该函数检查一个数字是否为偶数,并返回一个布尔值。 返回类型明确声明为 bool。 这使得函数的目的和返回值清晰。

类型转换为布尔值

此示例演示了如何将值转换为布尔值。

bool_casting.php
<?php

declare(strict_types=1);

$val1 = (bool) "";        // false
$val2 = (bool) "hello";   // true
$val3 = (bool) 0;         // false
$val4 = (bool) 1;         // true
$val5 = (bool) [];        // false

var_dump($val1, $val2, $val3, $val4, $val5);

代码显示了转换为布尔值的常见场景。 空字符串、零和空数组转换为 false。 非空值转换为 true。 这对于理解 PHP 中的真值/假值很重要。

逻辑运算中的布尔值

此示例显示了逻辑 AND/OR 运算中的布尔值。

bool_logical.php
<?php

declare(strict_types=1);

$isLoggedIn = true;
$isAdmin = false;

if ($isLoggedIn && $isAdmin) {
    echo "Admin dashboard";
} elseif ($isLoggedIn || $isAdmin) {
    echo "User dashboard";
} else {
    echo "Login page";
}

代码将布尔值与逻辑运算符结合使用。 && 运算符要求两个值都为 true。 || 运算符要求至少一个值为 true。 这些是复杂条件的基础。

作为函数参数的布尔值

此示例演示了在函数参数中使用布尔类型。

bool_parameter.php
<?php

declare(strict_types=1);

function showMessage(string $text, bool $urgent): void {
    if ($urgent) {
        echo "URGENT: $text";
    } else {
        echo "Notice: $text";
    }
}

showMessage("System update required", true);
showMessage("New features available", false);

该函数接受一个布尔参数来控制输出格式。 类型提示确保只能传递布尔值。 这使得函数的接口清晰,并防止与类型相关的错误。

数组运算中的布尔值

此示例显示了与数组函数一起使用的布尔值。

bool_array.php
<?php

declare(strict_types=1);

$users = [
    ['name' => 'Alice', 'active' => true],
    ['name' => 'Bob', 'active' => false],
    ['name' => 'Charlie', 'active' => true]
];

$activeUsers = array_filter($users, function($user) {
    return $user['active'];
});

print_r($activeUsers);

代码根据布尔值过滤数组。 回调函数返回布尔值“active”字段。 array_filter 包含回调返回 true 的元素。 这是一个常见的数据过滤模式。

最佳实践

来源

PHP 布尔值文档

本教程通过实际示例介绍了 PHP 布尔数据类型,展示了声明、在函数中的使用和逻辑运算。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。 自 2007 年以来,我一直在撰写编程文章。 迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出 所有 PHP 教程