为什么打印错误。是因为month是字符串而true是布尔值吗?
$month = "string";
if ($month === true) {
echo "true";
} else {
echo "false";
}
答案 0 :(得分:2)
===
是值和类型的比较运算符,因此$month
必须是boolean
(当然还有true
) 。是吗?
您应该使用$month == true
(仅比较值,不论类型)或仅if($month)
(因为不存在可能为0的月份)
答案 1 :(得分:1)
使用'==='时,您按值和按类型进行比较。由于$month = 'string';
显然是类型字符串,因此它不等于布尔true
,因此表达式的计算结果为false。
要使其输出为“true”,请将“===”运算符替换为“==”
这是一个指向question的链接,在这里很好地总结了
答案 2 :(得分:1)
是
==用于比较,但使用===(注意额外的'='符号)也将检查数据的类型。 因为$ month包含一个字符串,并且您将它与布尔值进行比较,所以它将返回false。
当您使用==时,它将返回true。
答案 3 :(得分:0)
在条件时间,如果你还没有宣布$ month变量。那么$ month将是未定义的,'==='true将始终返回false。