Php 在数组中存储假布尔值
我试图将一个假布尔值存储到数组中,并将其作为值传递到PDO准备语句中:Php 在数组中存储假布尔值,php,arrays,pdo,boolean,Php,Arrays,Pdo,Boolean,我试图将一个假布尔值存储到数组中,并将其作为值传递到PDO准备语句中: $a = Array('bool' => '0'); if($a['bool'] === '1') { $a['bool'] = true; } else { $a['bool'] = false; } print_r($a); 结果是: Array ( [bool] => ) 我希望: Array ( [bool] => 0 ) 因为如果我存储一个真布尔值,pr
$a = Array('bool' => '0');
if($a['bool'] === '1') {
$a['bool'] = true;
}
else {
$a['bool'] = false;
}
print_r($a);
结果是:
Array
(
[bool] =>
)
我希望:
Array
(
[bool] => 0
)
因为如果我存储一个真布尔值,print\r函数将true
打印为'bool'的值
如果$['bool']为空,则不会向我的位发送假值,并使我的查询无效
该值通过以下方式传递:
$sth->execute( $a );
我怎样才能解决这个问题
对于说“使用1和0”的人来说,PDO不接受整数1和0作为布尔值,它需要实数布尔值。使用整数0或1表示false或true。它将像布尔运算一样工作。如果将整数用作布尔值,则不应使用=
运算符。
您可以进行如下简单测试:
if($intVar) {
//do something it is true
}
else{
//do something it is false
}
$a = Array('bool' => 0);
$sth->execute( $a );
只需在数组中指定0或1,如下所示:
if($intVar) {
//do something it is true
}
else{
//do something it is false
}
$a = Array('bool' => 0);
$sth->execute( $a );
然后像这样使用它:
if($intVar) {
//do something it is true
}
else{
//do something it is false
}
$a = Array('bool' => 0);
$sth->execute( $a );
它未经测试,但应正常工作:)
演示:
输出:
It is false
Array
(
[bool] => 0
)
It is trueArray
(
[bool] => 1
)
使用整数0或1表示false或true。它将像布尔运算一样工作。如果将整数用作布尔值,则不应使用=
运算符。
您可以进行如下简单测试:
if($intVar) {
//do something it is true
}
else{
//do something it is false
}
$a = Array('bool' => 0);
$sth->execute( $a );
只需在数组中指定0或1,如下所示:
if($intVar) {
//do something it is true
}
else{
//do something it is false
}
$a = Array('bool' => 0);
$sth->execute( $a );
然后像这样使用它:
if($intVar) {
//do something it is true
}
else{
//do something it is false
}
$a = Array('bool' => 0);
$sth->execute( $a );
它未经测试,但应正常工作:)
演示:
输出:
It is false
Array
(
[bool] => 0
)
It is trueArray
(
[bool] => 1
)
它确实存储布尔值。因此,当您获得值时,应该期望一个布尔值。如果您使用var\u dump($a)
而不是print\r,您将看到它被完美地存储为
array(1) {
'bool' =>
bool(false)
}
它确实存储布尔值。因此,当您获得值时,应该期望一个布尔值。如果您使用var\u dump($a)
而不是print\r,您将看到它被完美地存储为
array(1) {
'bool' =>
bool(false)
}
您可以使用1或0表示true或false。否则,下面是另一种方法:
if($a['bool'] === '1') {
$a['bool'] = intval(true);
} else {
$a['bool'] = intval(false);
}
您可以使用1或0表示true或false。否则,下面是另一种方法:
if($a['bool'] === '1') {
$a['bool'] = intval(true);
} else {
$a['bool'] = intval(false);
}
使用整数0或1表示false或true。它的工作原理类似于布尔运算,使用整数0或1表示false或true。它的工作原理类似于布尔值yes,但如果我存储一个真值,它将使用print_r打印出来,反之,如果is false未打印出来。是的,但如果我存储一个真值,它将使用print_r打印出来,反之,如果is false未打印出来。