【PHP】簡単に4択クイズプログラムを作ってみよう

今回は簡単にクイズを作ってみようのコーナーです。

使用するプログラム言語は「PHP」のみ!

多分PHPを使って作ったクイズの種類なら、日本の中でも上位に入る自信があります。つまりは暇人です。

なお、今回の解説は、簡単なPHPプログラム、HTMLのformの仕組みが分かっている方向けです。

本当の基礎の基礎を学びたい方はドットインストールをオススメします。ドットインストールについてはこちら

逆に言えば、基礎が分かれば簡単に作れます。

スポンサーリンク
レクタングル(大)

まずはPHPファイルを準備しよう

まずは、PHPのフォーマットを準備しましょう。

下記のような簡単なもので構いません。なんならコピーしちゃってください。

問題文と選択肢を設定しよう

さて、上部の<?php ?>に、プログラムを書いていきましょう。

まずは、問題文を書いていきましょう。

問題文は分かりやすいように、変数に代入して使っていきましょうか。

そして、4択問題の設定です。

4択問題は、配列にすると管理がしやすくなるので、配列の変数を作り代入していきます。

そして、正解の回答となる変数も用意しておきましょう。

こう書いてもいいですが、$question変数の一番最初の配列を予め正解というルールにしておくと後々管理しやすいです。

その場合はこうなります。

とりあえず問題の設定はこれでいいですね。

では、問題の表示を行っていきましょう。

問題文と選択肢を表示しよう

PHPで設定した変数は、HTML上に表示させることができます。

formを使用し、ラジオボタンでクイズのように表示させてみましょう。

正解の回答も送る必要がありますが、見えないようにinput type=”hidden”を使用しています。

ブラウザ上ではこうなります。

1

ただ、この

を4回繰り返す書き方は非常に効率が悪いです。

もし選択肢の数が3になったり5になったりした時はわざわざ書き直さなくてはいけません。

なので、ここは配列の中身をすべて繰り返すforeach文で表示しましょう。

すっきりしましたね。

これで表示部分は問題ないでしょうか。

いいえまだです。

配列の最初の選択肢が正解というルールで$answerに代入していますが、これをそのまま表示してしまっては選択肢1がすべて正解になってしまいます。

$answerを代入したら、配列の中のランダムに振り分けましょう。

便利な命令がshuffle関数です。$answerで正解の設定したら、shuffle関数を使用し配列の中身をシャッフルしましょう。

こうすることで、選択肢の表示が毎回変わるようになります。

1

これで表示部分は一通り完成としましょう。

結果を送信し、結果表示画面を作ろう

先ほどは、

で、answer.phpにフォームの値を送るように設定していました。

answer.phpを同じフォルダに作成しましょう。

今作っているPHPファイルをコピーし、不要な部分を削除することですぐ用意できます。

送信内容の受信は、$_POSTで受け取りができます。

受け取りから結果判定までの画面を作っていきましょう。

ラジオボタンで選択した選択肢と、hiddenで送られてくる正解を$_POSTで受け取り、if文で判定し、結果を画面に表示させたらもう出来上がりです。

こちらが結果の画面です。

1

以上が、簡単な4択クイズの作り方でした。

覚えたては、簡単なプログラムでも大丈夫。ここから調べてアレンジしていくやる気が大事!

僕がPHP覚えたてのころは、こんな感じで簡単なクイズプログラムをつくっていました。

今記事を書いてて、「ああ、懐かしいなぁ」としみじみしたりもしました笑。

まぁ、当時はこの記事よりもぐちゃぐちゃで効率の悪いプログラムでしたが・・・foreachとか知らなかった時期です。

こんなスタートから始まった僕でも、最終的にはサイトとして公開できるレベルにまで仕上げていきました。

しっかりしたクイズサイトにしたくて、いろいろ考えては調べて、プログラム及びデザインを勉強していきました。

「ここの問題のデザイン・・・もっと綺麗に表示できないかな?黒板とかおしゃれかも?」

「クイズ一式を10問で、1回正解ごとに10点とかにしたほうが楽しいよね!」

「クイズの結果をツイートできるようにしたらいっぱい拡散されるかな?」

こんな考えから、上記のようなプログラムをどんどんカスタマイズかけていき、以下のようなクイズの画面になりました。

僕が管理している「ポケモンクイズ学園」の移転前の「ポケモンクイズスクール」のクイズ画面です。

1

1

現時点でこの4択クイズだけで150000回挑戦されるほど利用されました。

プログラミングは、自分がやりたいことが明確なほど、覚えが早くなります。

目標に対し、どうしたらいいかを自ら考えて調べることが出来る上に、モチベーションが落ちないからです。

僕は「ポケモンのクイズサイトが作りたい!そのためにはこうゆう知識が必要だから調べよう!」と、公開まで必死で勉強していきました。

プログラミングは、やらされでは上達しません。

何を作りたいか」がしっかりしている人ほど、ぐんぐん上達していくものだと僕は思います。

プログラミングに興味を持っている方は、漠然とただ覚えるのではなく、覚えて何が作りたいかをまず考えてみましょう。

そう考えると、プログラミングも楽しく勉強できると思いますよ!

スポンサーリンク
レクタングル(大)
レクタングル(大)

フォローする