PHP课程 - 第5课 - PHP 布尔变量(逻辑变量)
现在我们已经知道,在 PHP 中存在数字和字符串。但这还不是全部,本课我们将学习另一种类型的变量 —— 布尔变量(逻辑变量)。它们之所以被称为逻辑变量,是因为它们用于构建程序逻辑。
例如,假设有一个装水的杯子。如果水太少,你喝不够;如果水太多,当你倾斜杯子时水就会洒出来。所以需要根据水量决定是加水还是倒掉一部分水。
这个逻辑可以这样表示:
$количество_воды_в_стакане = 100;
$мало_воды = ПРАВДА;
ЕСЛИ $мало_воды
ТО $количество_воды_в_стакане = $количество_воды_в_стакане + 20;
在这个例子中,变量 $мало_воды
是一个逻辑变量,它只能取两个值:TRUE(真) 或 FALSE(假)。仅此而已。上面的代码还不是 PHP 代码,如果直接放进 PHP 文件,Apache 会报错。正确的 PHP 代码如下:
<?php $water = 100; $not_enough_water = TRUE; if($not_enough_water){ $water = $water + 20; } ?>
关于 if 条件语句我们将在后续课程中详细讲解。现在先来看 TRUE 和 FALSE。通常除了 TRUE 和 FALSE 外,还可以使用 1 和 0。但为什么我们还要专门使用 TRUE 和 FALSE 呢?这其实是为了节省内存。
还记得我们之前提到的吗?整型变量比浮点型变量占用的内存少一半。而布尔型变量(TRUE 或 FALSE)在内存中的占用更少 —— 仅为整型变量的四分之一,也是 浮点型变量的八分之一。因此,在可以使用布尔值的地方,优先使用 TRUE 或 FALSE。
也许你会问:“这点内存节省有意义吗?我的服务器有 8GB 内存呢!” 那我们来举个例子:
假设一个网站有 1000 个整型变量,这些变量完全可以用布尔变量代替。整型变量共占用 4MB 内存,而布尔变量只需 1MB。再假设有 100 个用户同时访问网站,这意味着整型变量将占用约 400MB,而布尔变量仅需 100MB。差距就是 300MB。虽然这是个简化的假设,但原理非常清楚 —— 布尔变量可以有效节省资源。
最后,再来看一下布尔变量在 PHP 中如何自动转换为整型:
<?php $var1 = TRUE; $var2 = TRUE + 1; echo $var2; ?>输出结果为 2。也就是说,PHP 会自动将布尔值与数字进行运算,不必担心类型不兼容的问题。