前提・実現したいこと
じゃんけん勝負のプログラムで、グーチョキパーのどれかを選択したら相手の手がランダムで表示され「自分の手」「相手の手」「勝負の結果」が表示されるプログラムを作ってます。
PHPでじゃんけん勝負のプログラム作成中に以下の現象が起こるようになりました。
発生している問題・エラーメッセージ
更新した直前、まだ何も選択していないのにif文の「あいこ」の時の条件である「draw」が勝負の結果に表示されてしまっています。
選択後からは問題なくじゃんけんが出来ます。
該当のソースコード
<?php $hands = array('グー','チョキ','パー'); $playerHand = ''; $pcHand = ''; $result = ''; if(isset($_POST['hand']) === TRUE){ $playerHand = htmlspecialchars($_POST['hand'], ENT_QUOTES, 'UTF-8'); $pcHand = $hands[array_rand($hands)]; } if($playerHand === $pcHand){ $result = ' draw'; }else if( $playerHand === 'グー' && $pcHand === 'チョキ' || $playerHand === 'チョキ' && $pcHand === 'パー' || $playerHand === 'パー' && $pcHand === 'グー' ){ $result = ' Win!!'; }else{ $result = ' lose...'; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>課題中級</title> </head> <body> <h1>じゃんけん勝負</h1> <p>自分:<?php print $playerHand;?></p> <p>相手:<?php print $pcHand;?></p> <p>結果:<?php print $result;?></p> <form method="post"> <input type="radio" name="hand" value="グー">グー <input type="radio" name="hand" value="チョキ">チョキ <input type="radio" name="hand" value="パー">パー<br> <input type="submit" value="勝負!"> </form> </body> </html>試したこと
打ち間違えがないかの確認
if文の「draw」を違う文字にしてみる(表示が変わるのでif文の条件が更新とともに既に行われているような様子)
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー