PHP 打印的布尔值是空的,为什么?

2022-08-30 11:41:21

我是PHP的新手。我正在实现一个脚本,我对以下内容感到困惑:

$local_rate_filename = $_SERVER['DOCUMENT_ROOT']."/ghjr324l.txt";
$local_rates_file_exists = file_exists($local_rate_filename);

echo $local_rates_file_exists."<br>";

这段代码显示一个空字符串,而不是 0 或 1(或 true 或 false)。为什么?文档似乎表明布尔值始终为 0 或 1。这背后的逻辑是什么?


答案 1

使用布尔值来回转换时要小心,手册说

布尔 TRUE 值将转换为字符串“1”。布尔值 FALSE 将转换为 “”(空字符串)。这允许在布尔值和字符串值之间来回转换。

所以你需要做一个:

echo (int)$local_rates_file_exists."<br>";

答案 2

关于将布尔值转换为字符串,手册实际上

布尔 TRUE 值将转换为字符串“1”。布尔值 FALSE 将转换为 “”(空字符串)。这允许在布尔值和字符串值之间来回转换。

布尔值始终可以表示为 1 或 0,但将其转换为字符串时,您不会得到什么。

如果要将其表示为整数,请将其转换为 1

$intVar = (int) $boolVar;

推荐