Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数组中存储假布尔值_Php_Arrays_Pdo_Boolean - Fatal编程技术网

Php 在数组中存储假布尔值

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

我试图将一个假布尔值存储到数组中,并将其作为值传递到PDO准备语句中:

$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未打印出来。