1

これがphpを使用して実行できるかどうかはわかりませんが、実行できれば素晴らしいと思います.phpは非常に強力なので、可能だと思いますが、方法がわかりません.

PHPファイルが上から下に実行されることは知っていますが、ある時点で実行を停止して後で再開する方法があるかどうか、またはその特定の部分に到達する方法があるかどうかを知りたいですそしてその前の部分から再開するか、またはそのようなものですか?

個々のコードブロックを個別のphpファイルに配置するだけでこれを作成する方法を知っています。このようにすると、ファイルの最後に到達したために停止し、何かが発生した場合は別のファイルから再開されるため、ほとんど同じことですが、このように動作するが1つのphpファイルに含まれるphpスクリプトを作成したいと思います。

コード例は必要ありません。関数名など、この目的に役立つ可能性のあるものなど、正しい方向にうなずく必要があります。

4

1 に答える 1

3

ユーザー入力に基づいて何かをしようとしている場合は、おそらく次のいずれかを行う必要があります。

  1. ユーザー入力の各ビットが、入力が実行する必要があるコードのブロックを含むページへの新しい要求を生成するように、プログラムを Web アプリケーションとして構成するか、または...
  2. PHP 以外の言語を使用します。

#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 ファイルに分割することもできます。どのアプローチが最適かは、おそらく、さまざまなオプション間で共有される機能の量と、その違いによって異なります。多くが共有されている場合は、単一のファイルの方が簡単かもしれません。ほとんどが異なる場合は、個別のファイルの方がおそらく簡単です。

于 2011-09-12T04:35:59.690 に答える