我有这个,而通过一个数组
while($value = current($array)){
$fields.=key($array);
$val.=$value;
next($array);
}
Run Code Online (Sandbox Code Playgroud)
所以问题是,当我将一个数组参数设置为0或null时,while停止...
我该如何解决它,所以它可以在字符串中添加0或null参数?
您可以安全地使用以下任一替代方法:
$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)
这可以让您了解原始代码中基于类型的缺陷.
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |