私は以下のようにforループを書いています。何らかの理由で、最初のループの後にループが停止します。この場合、値4を送信しようとしていますが、checkRes関数から文字列 "true"をチェックするif文に失敗します。それは関数が返す文字列です。ループの理解は、ループの最後のステートメントが満たされるか、終了するまでループを継続することになります。 下に間違っていることは何ですか?
最初の繰り返しの後にループが続かない
// assume $avaliable = 4;
for ($i=$avaliable;10>$i;$i++) {
$check = checkRes($i, $people_no, $booking_date);
if ($check === "true") {
switch($i) {
case 0: $newResTime = "6 PM"; break;
case 1: $newResTime = "6:30 PM"; break;
case 2: $newResTime = "7 PM"; break;
case 3: $newResTime = "7:30 PM"; break;
case 4: $newResTime = "8 PM"; break;
case 5: $newResTime = "8:30 PM"; break;
case 6: $newResTime = "9 PM"; break;
case 7: $newResTime = "9:30 PM"; break;
case 8: $newResTime = "10 PM"; break;
case 9: $newResTime = "10:30 PM"; break;
case 10: $newResTime = "11 PM"; break;
}
// Replace next line with your return from the chatbot
echo "We're sorry, that time isn't avaliable, but a reservation at $newResTime has been made!";
exit;
}
}
があなたの 'の出口を削除するには、それはループにしますので、'; ' – aldrin27
' $のcheck'が、あなたが 'の出口を持っている' if'にし、その上に入っていますので、本当であります停止 – GEPD
このコードはクレイジーです。なぜあなたのチェックのres関数は、boolだけを返しますか?なぜ時間を直接返さないのですか?反復インデックスは誰の予約と関係していますか? – Rafael