我的一些代码今天突然变得“破碎”,我正在试图找出问题所在。
当我编写代码时,传递字符串'false'会导致'0',但现在它不会导致任何结果,这会导致SQL错误。
我正在运行PHP 5.3.27。
我的代码:
$state = (bool) filter_var($_GET['state'], FILTER_VALIDATE_BOOLEAN);
结果:process.php?state = true
$state = 1
结果:process.php?state = false
$state =
答案 0 :(得分:2)
由于您要将结果投射到(bool)
,因此变量$state
保证保留布尔值true
或false
。当您echo
布尔值并将其转换为字符串时,true
将输出为"1"
,false
将输出为""
(空字符串)。您的代码永远不会为布尔值false
生成“0”。