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

Dar*_*hai 1 php arrays

我有这个,而通过一个数组

while($value = current($array)){
    $fields.=key($array);
    $val.=$value;
    next($array);
}
Run Code Online (Sandbox Code Playgroud)

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

我该如何解决它,所以它可以在字符串中添加0或null参数?

mic*_*usa 5

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

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

要么

$fields=implode(array_keys($array));
$val=implode($array);
Run Code Online (Sandbox Code Playgroud)

简单的演示



现在,我不建议遵循什么,但如果你肯定没有持有任何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";
Run Code Online (Sandbox Code Playgroud)

输出:

012345678
a0cefg0i
Run Code Online (Sandbox Code Playgroud)

这可以让您了解原始代码中基于类型的缺陷.