为什么在php中运行while循环后没有输出?
当我运行下面给出的代码时,它在浏览器中不输出任何内容。 我做错了什么?请帮忙为什么在php中运行while循环后没有输出?,php,arrays,next,Php,Arrays,Next,当我运行下面给出的代码时,它在浏览器中不输出任何内容。 我做错了什么?请帮忙 $ages = [0, 4, 8, 12, 16, 20]; while($age = current($ages)){ echo $age.","; next($ages); } 进行的第一个测试是,而(0),因为第一个值是0。因此,循环永远不会执行 您可以使用循环来代替 $ages = [0, 4, 8, 12, 16, 20]; foreach
$ages = [0, 4, 8, 12, 16, 20];
while($age = current($ages)){
echo $age.",";
next($ages);
}
进行的第一个测试是
,而(0)
,因为第一个值是0。因此,循环永远不会执行
您可以使用循环来代替
$ages = [0, 4, 8, 12, 16, 20];
foreach ($ages as $age) {
echo $age . ',';
}
或者只是为了更好的结果(因为它不会有尾随的,
)
进行的第一个测试是
,而(0)
,因为第一个值是0。因此,循环永远不会执行
您可以使用循环来代替
$ages = [0, 4, 8, 12, 16, 20];
foreach ($ages as $age) {
echo $age . ',';
}
或者只是为了更好的结果(因为它不会有尾随的,
)
为了解决当前的问题,当您在循环的第一次迭代中使用
current($ages)
时,将返回列表中的第一项,即0。由于while循环仅在值不为false(也为0)时继续,因此循环将不会运行,因此
while(($age = current($ages)) !== false){
echo $age.",";
next($ages);
}
或者,使用foreach
循环
foreach ( $ages as $age) {
echo $age.",";
}
为了解决当前的问题,当您在循环的第一次迭代中使用
current($ages)
时,将返回列表中的第一项,即0。由于while循环仅在值不为false(也为0)时继续,因此循环将不会运行,因此
while(($age = current($ages)) !== false){
echo $age.",";
next($ages);
}
或者,使用foreach
循环
foreach ( $ages as $age) {
echo $age.",";
}
提示:
current($ages)
在第一次迭代中返回什么?提示:current($ages)
在第一次迭代中返回什么?优秀而快速的解决方案卓越而快速的解决方案