2016-05-22 29 views
1

こんにちは、$GETの値が送信されているかどうかを確認しながら、if文で少し問題があります。問題は次のとおりです。このコードを実行すると、2番目のif条件の変数が挿入されますが、2番目のif条件の2番目のif条件から変数を取得できません。なぜそれが起こっているのですか?私はすでにreturnで試してみましたが、うまく動作しません。間違いは何ですか?PHPが条件外で変数を取得しています

$gameid = $_GET['gameid']; 
$id = $_GET['id']; 
$questionid = $_GET['questionid']; 

if (isset($_GET['gameid'])) { 
$answer = "answer_d"; 
} 
if (isset($_GET['id'])) { 

    // insert values into mysql database 
    $answer = "answer_m"; 

} 

その後、私は<p>タグに変数$answerをエコーし​​ます。

+0

「if」でreturn文を使用することはできません。あなたのコードはうまくいくようですが、私たちがあなたを助けることができるように他のコードがありますか? –

答えて

1

私はあなたの質問を正しく理解していれば、問題は$応答変数がif文の範囲外に存在しないということです。 $ gameidのような他の変数と一緒に$ answerを定義し、if文内の値を更新してみてください。

+0

'if'ブロックには独自のスコープがありません。 ifブロックで初期化された変数は、ブロックの外部でも使用できます。この質問/回答もご覧ください:http://stackoverflow.com/questions/6243991/ – bummzack

0

最初に変数の値を初期化します。この変数をすべての条件の後にエコーして、あなたのコードをブロックするかどうかを理解する

$gameid = $_GET['gameid']; 
$answer = ''; 
$id = $_GET['id']; 
$questionid = $_GET['questionid']; 

if (isset($_GET['gameid'])) { 
$answer = "answer_d"; 
} 
if (isset($_GET['id'])) { 

    // insert values into mysql database 
    $answer = "answer_m"; 

} 
関連する問題