我通过数组
获得了这个while($value = current($array)){
$fields.=key($array);
$val.=$value;
next($array);
}
所以问题是当我将一个数组参数设置为0或null时,while停止...
如何修复它,所以它可以在字符串中添加0或null参数?
答案 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);
现在,我不建议遵循什么,但是如果你绝对没有持有任何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
这可以解决原始代码中基于类型的缺陷。