2017-05-20 17 views
0

これを動作させることはできません。これは、作業を行う

if (empty($_GET)) { 
    echo 'American'; 

} 

else { 
    $t = $_GET["region"]; 
    if ($t == "Texas") { 
     echo "Texan"; 
    } elseif ($t == "California") { 
     echo "Californian"; 
    } else { 
     echo "American"; 
    } 
} 

domain.com?region=STATE

:私のような、URLから変数を取得したいです。私はエラーを取得する

domain.com?asdasd=whatever:

「お知らせ:未定義のインデックス:地域のライン19上のtest.phpをの」

しかし場合には、間違ったパラメータ入力のような、あります

このエラーが表示されないようにするにはどうしたらいいですか?基本的には空の変数として扱い、代わりに「アメリカン」を返しますか?

私はこのコードを試してみましたが、それは動作しません:

if (empty($_GET)) { 
    echo 'American'; 

} 
elseif ($_GET != "region") { 
    echo 'Anything Else'; 
} 
else { 
    $t = $_GET["region"]; 
    if ($t == "Texas") { 
     echo "Texan"; 
    } elseif ($t == "California") { 
     echo "Californian"; 
    } else { 
     echo "American"; 
    } 
} 

URLが真である場合でも:

domain.com?region=Texas

はまだ「何かを取得することです"と表示されます。

+0

[PHP: "注意:未定義の変数"、 "注意:未定義のインデックス"、および "注意:オフセット未定義"]の可能な重複(http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-notice-undefined-index-and-notice-undef) – Qirel

答えて

1

使用isset(($_GET['region'])未定義の変数送られた場合には、通知を出さないよう:あなたはarray_key_exists('region',$_GET)にを使用することができ

if (!isset($_GET['region'])) { 
    echo 'American'; 
} else { 
    $t = $_GET["region"]; 
    if ($t == "Texas") { 
     echo "Texan"; 
    } elseif ($t == "California") { 
     echo "Californian"; 
    } else { 
     echo "American"; 
    } 
} 
+0

ブームでリットルロジックを変更しました。これは完璧に動作しますエンジェージ – reizer

+0

私が正解であれば、投票ボタンの下の緑色のチェックマークをチェックしてくださいそのように:) – Enstage

1

使用$ _GET [ '領域']ない$ _GET自体を

if (!isset($_GET["region"]) || empty($_GET["region"])) { 
     echo 'American'; 

    } 
    else { 
     $t = $_GET["region"]; 
     if ($t == "Texas") { 
      echo "Texan"; 
     } elseif ($t == "California") { 
      echo "Californian"; 
     } else { 
      echo "American"; 
     } 
    } 
+0

thanx Amitしかし、それでも動作しません。定義された状態の1つを使用する場合、私は同じ出力 "その他"を取得します。 IE: test.php?地域=テキサス – reizer

+0

@reizerこれを試してくださいコード –

1

をこのようなパラメータが存在するかどうかをテストしてください。

if(!empty($_GET)){ 

    $t = array_key_exists('region', $_GET) && !empty($_GET['region']) ? strtolower($_GET['region']) : false; 

    if($t){ 
     switch($t){ 
      case 'texas': echo 'Texan';break; 
      case 'california': echo "Californian"; break; 
      default: echo 'Other State'; break; 
     } 
    } else { 
     echo 'Anything Else'; 
    } 
} else { 
    echo 'American'; 
} 
+0

うわー、あなたは小文字/大文字の訂正を含む場合もあります。 – reizer

1

これも試してみてください:

<?php 
 

 
     if (empty($_GET)) { 
 
      echo 'American'; 
 
     } else if($_GET){ 
 
      echo 'No Error! (Anything Else)'; 
 
     } 
 

 
     else { 
 
      $t = $_GET["region"]; 
 
      if ($t == "Texas") { 
 
       echo "Texan"; 
 
      } elseif ($t == "California") { 
 
       echo "Californian"; 
 
      } else { 
 
       echo "American"; 
 
      } 
 
     } 
 

 
    ?>

関連する問題