0

これが私のコードです

    <?php
    $id = isset($_GET['id']) ? $_GET['id'] : '';
    switch ($id) {
        default:include_once('default.php');
        break;
        case 'actiune':include('jocuri/actiune/index.php');
        break;
        case 'aventura':include('jocuri/aventura/index.php');
        break;
     }
     ?>
    <!--games-->
     <?php
     $game = isset($_GET['game']) ? $_GET['game'] : '';
     switch ($game) {
         case 'nz':include('jocuri/actiune/ninja-vs-zombie/index.php');
         break;
         case 'aventura':include('/jocuri/aventura/index.php');
         break;
      }
      ?>

したがって、ケース「nz」にアクセスしようとすると、上部のデフォルトも含まれます。では、「nz」ケースのみを含めるにはどうすればよいですか?

4

4 に答える 4

4

default ステートメントを最初の switch ステートメントの一番下に移動してみてください。switch ステートメントは各ケース パスをまっすぐ進むため、break キーワードが必要です。デフォルトのケースは、何があってもケースで常に実行されます。一番下に配置すると、ケースが失敗した場合にのみ実行されます。

于 2013-01-04T16:59:59.027 に答える
1

私が理解しているように、ゲームパラメーターが提供されている場合、 「トップ部分」( idによるファイルを含む) を無視したいと考えています。ゲームが提供されていない (または提供されたケース['aventura', 'nz']と一致しない)場合にのみ、最初の switch-statement を実行する IF ステートメントを追加してみてください。

さらに、次のようなことができます。

$id = isset($_GET['id']) ? $_GET['id'] : '';
$game = isset($_GET['game']) ? $_GET['game'] : '';

$games = array('nz' => 'jocuri/actiune/ninja-vs-zombie/index.php',
               'aventura' => '/jocuri/aventura/index.php');

$ids = array('actiune' => 'jocuri/actiune/ninja-vs-zombie/index.php',
             'aventura' => '/jocuri/aventura/index.php');

if (array_key_exists($game, $games))
{
  include($games[$game]);
}
else if (array_key_exists($id, $ids))
{
  include($ids[$id]);
}
else include('default.php');
于 2013-01-04T17:06:21.417 に答える
0

(これをosulerhiaの回答にコメントとして追加しようとしましたが、正しく読んだ場合、ポスターの質問に回答できるとは思えませんでした)。

あなたの質問を正しく理解しているかどうか、上記のosulerhiaの答えがあなたが探しているものであるかどうかはわかりません.

2 つの個別の GET 変数 ("id" と "game") が必要で、ゲーム変数が "nz" の場合、"id" に使用している switch ステートメントからデフォルトを表示したくありませんか?

その場合は、switch ステートメントの実行方法に何らかのロジックを追加する必要があります。次に、「nz」が「game」の値である場合に、他のいずれかを表示するかどうかを検討する必要があります。あなたのロジック(平易に書かれています)は現在:

Is the id variable "actiune" -> include a file

Is the id variable "aventura" -> include a file

Is the id variable anything else -> include the default file

Is the game variable "nz" -> include a file

Is the game variable "aventura" -> include a file

両方のスイッチが完全に分離されていることがわかるので、表示する内容と表示するタイミングを決定する必要があります。ゲーム変数の値が「nz」の場合、次のような if ステートメントでラップできます。

if((isset($_GET['game']) && $_GET['game'] != "nz") || (!isset($_GET['game']))) { *your original switch statement* }
于 2013-01-04T17:26:53.517 に答える
0

これを試して

    <?php
$id = isset($_GET['id']) ? $_GET['id'] : '';
switch ($id) {

    case 'actiune':include('jocuri/actiune/index.php');
    break;
    case 'aventura':include('jocuri/aventura/index.php');
    break;
   default:include_once('default.php');
    break;
 }
 ?>
<!--games-->
 <?php
 $game = isset($_GET['game']) ? $_GET['game'] : '';
 switch ($game) {
     case 'nz':include('jocuri/actiune/ninja-vs-zombie/index.php');
     break;
     case 'aventura':include('/jocuri/aventura/index.php');
     break;
  }
  ?>
于 2013-01-04T17:09:56.027 に答える