php - 在 php 中打印 false

标签 php syntax boolean

<分区>

我正在尝试打印以下语句:

print false . "\n" . true . "\n";
echo false . (bool)false . "\n" . true . "\n";
print "0" . "\n" . true . "\n";

我得到的结果只是“1 1 0 1”。 预期结果是:

0
1
0
1
0
1

我正在使用 PHP 5.4.3 MSVC9 x64 有人可以解释为什么以及如何让它以正确的方式打印吗?

最佳答案

您的问题来自您对 PHP 中字符串的 + 运算符的误解。字符串连接运算符是 由于 PHP 是松散类型的,它不知道您是否要连接或添加字符串。

我会为你分解:

print false + "\n" + true + "\n";
echo false+(bool)false + "\n" + true + "\n";
print "0" + "\n" + true + "\n";

首先,您可能希望选择继续使用 echoprint。现在,继续:

print false + "\n" + true + "\n";

PHP 字符串,when added (not contacted) ,评估为 0。所以这个语句的计算结果是:

print 0 + 0 + 1 + 0;

这是 1。其他人效仿。如果您希望您的代码正常工作,您应该使用串联运算符 (.)。如果您想像 .NET 那样编写 TrueFalse,您可以编写一个简单的函数:

function writeBool($var)
{
    echo ($var) ? "True" : "False";
}

根据 PHP 的松散类型(如果你问我这很糟糕),任何会 evaluate to true 的东西, 会写“真”。我仍然不鼓励使用函数来执行此操作 function calls in PHP are expensive .

关于php - 在 php 中打印 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11512705/

相关文章:

理解缩进的 php 语法检查器

java - 检查 3 个标准

php - 如何使用 laravel 加速 Mysql 查询

php - 教义2 : SUM in left join

Java 和空格作为语法(ala Python)?

ruby - 如何编写 expect {}.to raise_error when rspec's syntax is configured with only should

java - boolean 值 vs boolean 值作为 trilean 开关

mysql - 我可以在 1 列中保存 7 个 boolean 值吗?

php - 我可以为本地主机配置 cron 作业吗

php - 在 FPDF 中解决这个问题的算法是什么?