FILTER_VALIDATE_BOOLEAN在传递字符串' false'时返回空结果。

时间:2014-04-28 09:38:34

标签: php

我的一些代码今天突然变得“破碎”,我正在试图找出问题所在。

当我编写代码时,传递字符串'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 = 

1 个答案:

答案 0 :(得分:2)

由于您要将结果投射到(bool),因此变量$state 保证保留布尔值truefalse。当您echo布尔值并将其转换为字符串时,true将输出为"1"false将输出为""(空字符串)。您的代码永远不会为布尔值false生成“0”。