将 false 布尔值存储在数组中

Fez*_*sta 1 php arrays pdo boolean

我正在尝试将一个 false 布尔值存储到一个数组中,以将其作为 PDO 准备好的语句中的值传递:

$a = Array('bool' => '0');

if($a['bool'] === '1') {
    $a['bool'] = true;
}
else {
    $a['bool'] = false;
}

print_r($a);
Run Code Online (Sandbox Code Playgroud)

结果是:

Array
(
    [bool] => 
)
Run Code Online (Sandbox Code Playgroud)

我希望:

Array
(
    [bool] => 0
)
Run Code Online (Sandbox Code Playgroud)

因为如果我存储一个真正的布尔值,print_r 函数将打印true为 'bool' 的值。

将 $['bool'] 设为空不会bit将错误值发送到我的字段并使我的查询无效。

该值通过以下方式传递:

$sth->execute( $a );
Run Code Online (Sandbox Code Playgroud)

我该如何解决问题?


对于谁说“使用 1 和 0”,好吧,PDO 不接受整数 1 和 0 作为布尔值,它需要真正的布尔值。

Nip*_*dar 5

您可以使用 1 或 0 来表示真或假。否则,下面是另一种方法:

if($a['bool'] === '1') {
    $a['bool'] = intval(true);
} else {
    $a['bool'] = intval(false);
}
Run Code Online (Sandbox Code Playgroud)