首页 > 解决方案 > php做而不等于不结束

问题描述

尝试使用 do while 循环,但它永远不会完成。不知道为什么

<?php

$a = "2018-11-28T14:36:27+00:00";
$b = "2018-11-28T14:43:27+00:00.";

if ($a !== $b) {
    echo "not equal";
}
else {
        echo "equal";
}

do {
    echo "a";
} while ($a !== $b);

标签: php

解决方案


做while语句:

“do-while 语句中的表达式在循环体执行后计算。因此,循环体总是至少执行一次。”

php手册的附加说明

“do-while 循环与 while 循环非常相似,只是在每次迭代结束时而不是在开始时检查真值表达式。与常规 while 循环的主要区别在于,do-while 循环的第一次迭代得到保证运行(真值表达式仅在迭代结束时检查),而它可能不一定使用常规 while 循环运行(真值表达式在每次迭代开始时检查,如果它从一开始就评估为 FALSE ,循环执行将立即结束)。”

因为 do while body 至少执行一次,它会回显“a”,但您的条件始终为真,并且您不会将您的值更改为 do while body;然后你会得到一个无限循环


推荐阅读