php错误修复接受0或null同时

时间:2017-10-24 11:26:30

标签: php arrays

我通过数组

获得了这个
while($value = current($array)){
    $fields.=key($array);
    $val.=$value;
    next($array);
}

所以问题是当我将一个数组参数设置为0或null时,while停止...

如何修复它,所以它可以在字符串中添加0或null参数?

1 个答案:

答案 0 :(得分:5)

您可以安全地使用以下任一替代方法:

$array=['a','b','c'];
$fields='';
$val='';
foreach($array as $key=>$value){
    $fields.=$key;
    $val.=$value;
}

$fields=implode(array_keys($array));
$val=implode($array);

Simple demonstration

现在,我不建议遵循什么,但是如果你绝对没有持有任何false(严格意思是我的意思)值,你可以使用这个“修复”:

$array=['a','0','c',null,'e','f','g',0,'i'];
$fields='';
$val='';
while(($value=current($array))!==false){
    $fields.=key($array);
    $val.=$value;  // null values (0-length strings) vanish during concatenation
    next($array);
}
echo "$fields\n$val";

输出:

012345678
a0cefg0i

这可以解决原始代码中基于类型的缺陷。