0

変数があり、その型は文字列です。var_dump()ショー:

var_dump()出力は次のとおりです。

string(14)

//これは私のコードです..

$game_cat = "Some text";// 一部のテキストは、実際にはカテゴリ 1、2、3、4 のいずれかであることを意味します ...

if ( $game_cat === "Category 1" ) {
        $cid = 1;
}

if ( $game_cat === "Category 2" ) {
        $cid = 2;
}

if ( $game_cat === "Category 3" ) {
        $cid = 0;
}

else{
       $cid = 999999;
}

たとえば、$cid must 1$game_catのようにカテゴリ 1 に変更すると、出力は 999999 になります。$game_cat = "Category 1";

なんで?

4

4 に答える 4

3

使用するelseif

if ( $game_cat === "Category 1" ) {
        $cid = 1;
}

elseif ( $game_cat === "Category 2" ) {
        $cid = 2;
}

elseif ( $game_cat === "Category 3" ) {
        $cid = 0;
}

else{
       $cid = 999999;
}

現在のコードの機能:

if ( $game_cat === "Category 1" ) {
        $cid = 1; //cid is 1
}

if ( $game_cat === "Category 2" ) {
        $cid = 2; //skipped
}

if ( $game_cat === "Category 3" ) {
        $cid = 0; //skipped
}

else{
       $cid = 999999; //cid == 999999
}
于 2013-09-30T15:29:12.520 に答える
1

編集:ワーキングデモ

http://phpfiddle.org/main/code/g02-bjj

これを試して:

$game_cat = "Category 2";

if ( $game_cat === "Category 1" ) {
        $cid = 1;
}

elseif ( $game_cat === "Category 2" ) {
    $cid = 2;
}

elseif ( $game_cat === "Category 3" ) {
    $cid = 0;
}

else {
   $cid = 999999;
}
  1. 使用elseif: http://php.net/manual/en/control-structures.elseif.php
  2. http://www.php.net/manual/en/language.operators.comparison.php

それが役に立てば幸い!

于 2013-09-30T15:29:05.220 に答える
1

複数の if ステートメントを使用していますが、これは 1 つ (else-if) にする必要があります。したがって、最初は変数は 1 になりますが、最後の if ステートメントによって上書きされるため、間違った答えが得られます。

次のようにします。

if ( $game_cat === "Category 1" ) {
        $cid = 1;
}
elseif ( $game_cat === "Category 2" ) {
        $cid = 2;
}
elseif ( $game_cat === "Category 3" ) {
        $cid = 0;
}
else{
       $cid = 999999;
}

elseif の詳細については、http://php.net/manual/en/control-structures.elseif.php を確認してください:)

于 2013-09-30T15:30:12.580 に答える
0

最後のためelse。最初の状態のまま"Category 1" $cidセットされますが、そうではないのでリセットされます。1if"Category 3"

この場合、多くの「if」を連結する代わりに「elseif」を使用する必要があります。

于 2013-09-30T15:29:41.997 に答える