首页  >  文章  >  后端开发  >  了解 PHP 类型 – 布尔值

了解 PHP 类型 – 布尔值

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-21 10:48:02582浏览

Understanding PHP Types – Booleans

什么是布尔值?

在 PHP 中,布尔值是一种只能有两个值的数据类型:

  • true:代表积极或肯定的状态。
  • false:表示否定或错误状态。

布尔值通常用于条件语句、比较和逻辑运算。需要注意的是,true 和 false 都不区分大小写。所以,true、True、truE、TRUE 都是有效的。


创建布尔变量

您可以通过直接赋值 true 或 false 来创建布尔变量:

示例:

<?php
$isAvailable = true;  // Boolean variable set to true
$isLoggedIn = false;  // Boolean variable set to false

var_dump($isAvailable); // Output: bool(true)
var_dump($isLoggedIn);  // Output: bool(false)
?>

这里使用var_dump()函数来显示变量的类型和值。


布尔转换

在 PHP 中,许多数据类型都可以转换为布尔值。可以使用 (bool) 将值类型转换为布尔值。通常这不是必需的,因为当在逻辑上下文中使用值时,它将自动解释为 bool 类型的值。

转换为布尔值时,以下值将返回 false:

  • 布尔值 false 本身
  • 整数值0
  • 浮点值 0.0 和 -0.0
  • 空字符串,“”
  • 带有单个零“0”的字符串
  • 空数组
  • 类型 null
  • 未设置的变量
  • 其他一些复数值

所有其他值都被视为 true,包括资源和 NAN。

示例:

<?php
$values = [0, 1, "", "Hello", [], [1, 2, 3], null, 0.0, 3.14];
foreach ($values as $value) {
    var_dump((bool)$value);
}
?>

输出:

bool(false) // 0
bool(true) // 1
bool(false) // ""
bool(true) // "Hello"
bool(false) // []
bool(true) // [1, 2, 3]
bool(false) // null
bool(false) // 0.0
bool(true) // 3.14

在条件语句中使用布尔值

布尔值主要用在 if、else 和 switch 等条件语句中,以控制程序的流程。

示例:

<?php
$isUserLoggedIn = true;

if ($isUserLoggedIn) {
    echo "Welcome, User!"; // This message will be displayed
} else {
    echo "Please log in.";
}
?>

在此示例中,由于 $isUserLoggedIn 为 true,因此消息“欢迎,用户!”将显示。


比较运算符和布尔值

PHP 提供了各种返回布尔值的比较运算符:

  • 相等 (==):检查值是否相等。
  • 身份(===):检查值和类型是否相同。
  • 不等式(!= 或 ):检查值是否不相等。
  • 非同一性 (!==):检查值或类型是否不相同。
  • 大于 (>) 和小于 (:用于数字比较。

示例:

<?php
$a = 10;
$b = "10";

var_dump($a == $b);   // Output: bool(true)  - values are equal
var_dump($a === $b);  // Output: bool(false) - types are different
var_dump($a > 5);     // Output: bool(true)  - 10 is greater than 5
var_dump($a != 10);   // Output: bool(false) - 10 is equal to 10
?>

逻辑运算符和布尔值

逻辑运算符用于组合或否定布尔表达式:

  • && (AND):如果两个操作数都为 true,则返回 true。
  • || (OR):如果至少一个操作数为 true,则返回 true。
  • ! (NOT):否定布尔表达式。

示例:

<?php
$isAvailable = true;  // Boolean variable set to true
$isLoggedIn = false;  // Boolean variable set to false

var_dump($isAvailable); // Output: bool(true)
var_dump($isLoggedIn);  // Output: bool(false)
?>

一些布尔警告


1. 松散的比较

由于类型杂乱,使用 == 可能会导致意外结果。始终使用 === 进行严格比较。

示例:

<?php
$values = [0, 1, "", "Hello", [], [1, 2, 3], null, 0.0, 3.14];
foreach ($values as $value) {
    var_dump((bool)$value);
}
?>

在第一种情况下,0 和 false 被认为是相等的,因为松散比较时 0 会转换为 false。


2. 错误的价值观

某些值(如 0、“0”和空数组)被视为 false,有时会导致逻辑错误。

示例:

bool(false) // 0
bool(true) // 1
bool(false) // ""
bool(true) // "Hello"
bool(false) // []
bool(true) // [1, 2, 3]
bool(false) // null
bool(false) // 0.0
bool(true) // 3.14

3. 短路评估

逻辑运算符 && 和 ||使用短路评估。这意味着如果结果由第一个操作数确定,则不会计算第二个操作数。

示例:

<?php
$isUserLoggedIn = true;

if ($isUserLoggedIn) {
    echo "Welcome, User!"; // This message will be displayed
} else {
    echo "Please log in.";
}
?>

4. 区分大小写

true 和 false 不区分大小写,因此 True、FALSE 和 fAlSe 有效,但不建议保持一致性。

以上是了解 PHP 类型 – 布尔值的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn