如果数组位于 php 中的关联中,则无法将 0 分配给该数组。
Can't assign 0 to an array if it was in an assocc in php.
这是一些 php 代码。 0 明确地在关联数组中找到。如果我尝试将它放在另一个中,它不会被分配。我知道如何解决这个问题的唯一方法是使用 ===
明确检查它是否为 0。这是唯一的方法吗?
<?php
$vars['one'] = '31234';
$vars['two'] = 'sldf';
$vars['three'] = 1 - 1;
$return_array = [];
foreach ($vars as $key => $value){
echo "---------------Just value<br>";
var_dump($value);
echo "<br>";
$value != '' ? ($return_array[$key] = $value) : null;
echo "---------------array of key<br>";
var_dump($return_array[$key]);
echo "<br>";
}
?>
我把这件好事拿回来了。
---------------Just value
string(5) "31234"
---------------array of key
string(5) "31234"
---------------Just value
string(4) "sldf"
---------------array of key
string(4) "sldf"
---------------Just value
int(0)
---------------array of key
NULL
有什么比 if ($key === 0) { // stuff }
更好的方法吗?
您在执行 $value != ''
时正在使用 "loose comparison"。对于 0,这也评估为 false。请参阅 table 进行松散比较 here。
如果您改用 $value !== ''
,它会将 0 插入到数组中。
这是一些 php 代码。 0 明确地在关联数组中找到。如果我尝试将它放在另一个中,它不会被分配。我知道如何解决这个问题的唯一方法是使用 ===
明确检查它是否为 0。这是唯一的方法吗?
<?php
$vars['one'] = '31234';
$vars['two'] = 'sldf';
$vars['three'] = 1 - 1;
$return_array = [];
foreach ($vars as $key => $value){
echo "---------------Just value<br>";
var_dump($value);
echo "<br>";
$value != '' ? ($return_array[$key] = $value) : null;
echo "---------------array of key<br>";
var_dump($return_array[$key]);
echo "<br>";
}
?>
我把这件好事拿回来了。
---------------Just value
string(5) "31234"
---------------array of key
string(5) "31234"
---------------Just value
string(4) "sldf"
---------------array of key
string(4) "sldf"
---------------Just value
int(0)
---------------array of key
NULL
有什么比 if ($key === 0) { // stuff }
更好的方法吗?
您在执行 $value != ''
时正在使用 "loose comparison"。对于 0,这也评估为 false。请参阅 table 进行松散比较 here。
如果您改用 $value !== ''
,它会将 0 插入到数组中。