是否有可能PHP脚本停在某一点并从此之前恢复执行?

时间:2011-09-12 04:00:25

标签: php execute resume

我不知道这是否可以使用php完成,但如果它确实对我来说真的很棒而且php非常强大所以我认为这是可能的,我只是无法弄清楚如何。

我知道一个php文件是从上到下执行但我想知道是否有办法在某个时刻停止执行然后在以后恢复它或者是否有办法达到某个它的一部分,然后从它之前的部分或类似的部分恢复?

我知道如何制作这个,如果我只是将每个单独的代码块放在一个单独的php文件中,这样它就会停止,因为它到达文件的末尾,如果发生了什么,它将从另一个文件恢复,所以它几乎是一样的东西,但我想制作一个像这样的PHP脚本,但包含在1个php文件中。

我不需要代码示例我只需要在正确的方向上点头,比如,某些函数名称或可能有助于实现此目的的东西。

1 个答案:

答案 0 :(得分:3)

如果您尝试根据用户输入执行操作,则可能应该:

  1. 将您的程序构建为Web应用程序,这样每个用户输入位都会向页面生成一个新请求,其中包含输入应该执行的代码块,或者......
  2. 使用与PHP不同的语言。
  3. 假设您正在做#1,那么让特定的GET参数指定您在交互中的“步骤”并不是那么难 - 例如,假设您有一系列"A <user input> B or C <user input> D or E" 。您可以使用如下所示的URL方案:

    /app/code.php - this runs the code block A
    /app/code.php?step=B or /app/code.php?step=C - this runs either code block B or C
    /app/code.php?step=D or /app/code.php?step=E - this runs either code block D or E
    

    其中链接/ Javascript /服务页面上的任何内容都允许选择下一个加载的页面。你的PHP文件看起来像这样:

    if(!isset($_GET['step'])) {
        // code block A
    } elseif($_GET['step'] == 'B') {
        // code block B
    } elseif($_GET['step'] == 'C') {
        // code block C
    } elseif($_GET['step'] == 'D') {
        // code block C
    } elseif($_GET['step'] == 'E') {
        // code block C
    } else {
        // error, invalid step specified
    }
    

    您还可以简单地将步骤拆分为不同的PHP文件。哪种方法最好可能取决于不同选项之间共享多少功能,以及多少不同 - 如果批量共享,单个文件可能更容易;如果大多数不同,单独的文件可能更简单。