- ベストアンサー
PHPで$_GET[’m’]の意味が分かりません。
市販の本を参考にPHPを勉強しています。 以下の(2箇所あります)$_GET['m']の'm'とは何なのでしょうか。mを得たらリセット・・?でもmを得るってなんなんでしょう?? 突然出てきて困っております。 初歩的な質問かもしれませんが、よろしくお願いします。 <?php //------------------------------------------------------- //宝探しゲーム //----------------------------------------------------- //セッションの開始 session_start(); //タイトルと説明表示 echo "<h1>宝探し</h1>"; echo "<p>マップ上の適当な場所をクリック!</p>"; //ゲーム状態を判定する $stat = $_SESSION['stat']; if (!$stat || $_GET['m'] == "reset"){ //初めての場合、リセット時 init_game(); draw_map(); exit; } //パネルを開くとき if ($_GET['m'] == 'click'){ click_panel(); } // ゲームパラメータの初期化 function init_game() { //ゲームの初期化 $_SESSION['stat'] ='playing'; $_SESSION['turn'] =0; //宝の位置を設定する $_SESSION['takara_x'] = rand(0,8); $_SESSION['takara_y'] = rand(0,8); //マップを初期化 for ($y = 0; $y < 9; $y++){ for ($x = 0; $x < 9; $x++){ $_SESSION["map"][$y][$x] = "*"; } } } //マップの描画(tableタグ表示) function draw_map() { //マップを描画する $map = $_SESSION['map']; $s = "<table border='1'>"; for ($y = 0; $y < 9; $y++) { $s .="<tr>"; for ($x = 0; $x < 9; $x++){ $v = $_SESSION["map"][$y][$x]; $color = "#FFFFFF"; if ($v == "*"){ $v = "<a href ='?m=click&x=$x&y=$y'>*</a>"; $color = "#COCOCO"; } $s .= "<td width='24' align='center' bgcolor='$color'>"; $s .= "$v</td>"; } $S .="</tr>"; } $s .= "</table>"; echo $s; echo "<p>現在、{$_SESSION['turn']}手目です。</p>"; echo "<p><a href='?m=reset'>* RESTART *</a></p>"; } //パネルクリック時の処理 function click_panel() { $x = intval($_GET['x']); $y = intval($_GET['y']); $takara_x = $_SESSION['takara_x']; $takara_y = $_SESSION['takara_y']; $_SESSION['turn']++; //宝を有無を判定 if ($takara_x == $x && $takara_y == $y) { //宝を見つけた判定 $_SESSION["map"][$y][$x] = '<font color="red">@</font>'; echo '<h1>☆大当たり☆</h1>'; draw_map(); init_game(); }else{ //間違えた場合は宝までの距離を表示 $dist = abs($takara_x - $x) + abs($takara_y - $y); $_SESSION['map'][$y][$x] = $dist; echo "<p>残念でした!ヒント・・あと $dist の距離のところ</p>"; draw_map(); exit; } } ?>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コメントの「//初めての場合、リセット時」は、 「初めての場合はリセットする」という意味ではなく、 「初めての場合、または、リセット操作した場合、以下の処理を行う」という意味です。 $_GET は、呼び出し元のHTMLに記述された引数を取得する変数です。 HTMLがどうなっているのか挙げられていませんので想像ですが、 おそらく「最初から遊ぶ」という操作を指示するボタンがあって、 そのボタンでは、名前が「m」値が「reset」な引数を渡すように設定しているのでしょう。 それが、「リセット時」 「初めての場合」は、「!$stat」を指しているのだと思います。 $_SESSIONは、PHP内部のセッション管理によって、 PHPプログラムが終了した後も、次回起動時にまで ユーザー(ブラウザ)ごとに変数値を覚えることが出来ます。 $stat の元になった $_SESSION['stat'] は、PHPコード内で値を設定していますから、 それが設定されていないということは、そのサイトを訪れた「初めての場合」である、 ということがわかります。
その他の回答 (1)
- kyotokyo
- ベストアンサー率35% (27/77)
すでに書かれてますが HTMLからPHPが呼び出された場合 GETとPOSTという二つの方法でデータを受信することが出来ます。 $_GET[]は、GETメソッドで名前がmのフォーム部品からデータをとる という意味になります。
お礼
ふむふむ。 初学者にも分かりやすい説明ありがとうございました! これからますます勉強しなければ・・ですね。 ありがとうございました。
お礼
おおなるほど・・大方理解出来ました! ありがとうございました。