1

如果从用户端收到输入并继续循环,我如何打破我的连续循环

<?php
{
   //first part of code
}

//endless loop, based on the first part, until an onclick method sends an ajax request?
while (1)
{
   ...
   if ($variable_is_set_by_button_press) break;
}

{
   //last part of code giving me some feedback about execution time and such
}
?>

提前致谢

4

4 回答 4

0

@tyrhus 100% 正确。PHP 在服务器端执行,而不是在客户端(浏览器)。

因此,如果您想对用户的输入做出反应,您应该使用 AJAX 并在发生这种情况时向服务器发出异步请求。

于 2013-06-16T20:12:04.083 回答
0

您可以尝试使用 APC。假设您的循环在script1.phpajax 中运行:

while(1){
  if(apc_fetch($user . '_stop'))
    break;
}

按下按钮时,您会触发另一个 ajax 请求script2.php

apc_store($user . '_stop', 1);

$user可以是会话 ID 或当前用户 IP、用户代理等的哈希值。

于 2013-06-16T20:04:19.050 回答
0

这些语言结构是专门为循环制作的,也许它会有所帮助:

break- 跳出循环,

continue- 进入下一个循环程序。

于 2013-06-16T19:54:01.273 回答
0

我不确定您为什么要这样做,但是您可以通过使用数据库变量控制循环来实现它:

while (checkDatabaseVariable() == true) {
// DO STUFF
}

然后,您可以使用不同的脚本将此变量设置为 false,您的 PHP 循环应该会检测到更改并跳出循环。

于 2013-06-16T19:55:04.040 回答