繁体   English   中英

如果它在php的assocc中,则不能为数组分配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 != ''时使用“松散比较”。 对于0也将其评估为false。 见松动的比较表在这里

如果使用$value !== '' ,它将在数组中插入0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM