クイズを解くだけでなく、作ることもPHPに親しむ方法の一つです。作ることの良さとコツを、実例をもとに紹介します。 2023/03/25に開催されたPHPerKaigi 2023 (Day2 LT) にて発表した内容です。
題材となったクイズはこちら https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/
1クイズを作ってPHPに親しむ中山 慶祐 (やんまー)/ GMO PEPABO inc.2023.03.23 PHPerKaigi2023 LT
View Slide
2自己紹介やんまー@yammerjp
GMOペパボ株式会社 EC事業部2021年 新卒入社3自己紹介PHP歴2年目SoftwareDesignで「開発環境 探求の道」連載中中山 慶祐 / やんまー (@yammerjp)
4今日はPHPクイズを作った話をします
5
6PHP Conference 2022にて クイズを出題
7出題例: 次のコードの実行結果は?PHPクイズとはbool(true)bool(true)bool(true)1$var = '0';var_dump(isset($var));var_dump(empty($var));var_dump(is_null($var));bool(true)bool(true)bool(false)2bool(true)bool(false)bool(false)3bool(false)bool(false)bool(false)4
8出題例: 次のコードの実行結果は?PHPクイズとは$var = '0';var_dump(isset($var));var_dump(empty($var));var_dump(is_null($var));bool(true)bool(true)bool(false)22解説: https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/
9クイズを解くのは面白いですよねPHPクイズとは
10クイズを作ると何がいいのか
11クイズを作るとクイズを作ると何がいいのか
12クイズを作るとPHPの仕様を知れるクイズを作ると何がいいのか
13クイズを作るとみんなPHPが好きだとわかるクイズを作ると何がいいのか注: 個人の感想です
14クイズを作るとPHPに親しめるクイズを作ると何がいいのか
15クイズを作るコツ
161.ネタを集めるクイズを作るコツ
17- 業務中に話題になったPHPの標準関数をメモ1.ネタを集めるクイズを作るコツ
18- 業務中に話題になったPHPの標準関数をメモ- PHPerの登壇資料を探検1.ネタを集めるクイズを作るコツ
19- 業務中に話題になったPHPの標準関数をメモ- PHPerの登壇資料を探検- PHPマニュアルをランダムに開いて読む1.ネタを集めるクイズを作るコツ
20- 業務中に話題になったPHPの標準関数をメモ- PHPerの登壇資料を探検- PHPマニュアルをランダムに開いて読む- 社内のPHPerから募る1.ネタを集めるクイズを作るコツ
21色んな人が参加できるよう、簡単、普通、難問を作る簡単: PHPをあまり知らなくても解ける普通: PHPerによく知られた話題難問: ライブラリのコードに触れる人ならば知っている /人間が 覚えていないような細かな挙動2.難易度を調整クイズを作るコツ注: 個人の感想です
22出題例(簡単):PHPの開始タグは?クイズを作るコツ (難易度を調整)<br/><script lang=”php”><br/>1<br/>3 4<br/>2<br/>
23出題例(簡単):PHPの開始タグは?クイズを作るコツ (難易度を調整)4解説: https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/
24出題例(簡単):PHPのマスコットキャラクターは?クイズを作るコツ (難易度を調整)dolPHPin(イルカ)PHPeasant(キジ)elePHPant(ゾウ)ePHPemera(カゲロウ)1 2 43
25出題例(簡単):PHPのマスコットキャラクターは?クイズを作るコツ (難易度を調整)elePHPant(ゾウ)2解説: https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/
26出題例(普通): 次の実行結果は?クイズを作るコ (難易度を調整)bool(true)bool(true)bool(true)1$var = '0';var_dump(isset($var));var_dump(empty($var));var_dump(is_null($var));bool(true)bool(true)bool(false)2bool(true)bool(false)bool(false)3bool(false)bool(false)bool(false)4再掲
27出題例(難問): $valの値は?クイズを作るコツ (難易度を調整)$val = count(array_keys(["0" => "a"," 0"=> "b","01" => "c",null => "d","e",true => "f",false => "g",]));516273null4
28出題例(難問): $valの値は?クイズを作るコツ (難易度を調整)$val = count(array_keys(["0" => "a"," 0"=> "b","01" => "c",null => "d","e",true => "f",false => "g",]));51解説: https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/
29色んな人が参加できるよう、簡単、普通、難問を作る簡単: PHPをあまり知らなくても解ける普通: PHPerによく知られた話題難問: ライブラリのコードに触れる人ならば知っている /人間が 覚えていないような細かな挙動2.難易度を調整クイズを作るコツ注: 個人の感想です
30① 四択形式にする… 別解を避ける② 信頼できる出典元から出題… 公式ドキュメントや実行結果→ クイズを成立させ、納得感のある問題にする3.答えの裏付けクイズを作るコツ
クイズを作るコツ31答えの裏付け難易度を調整ネタを集める31クイズを作るコツ
32まとめ
33クイズを作ってPHPに親しもうまとめクイズを解くことにも学びがあるクイズを作ることにも学びがある
34おまけ
35問題: 次のコードの出力は?おまけPHP7.4では1PHP8.0では21echo (true ? '1' : false ? '2' : '3');PHP7.4では1PHP8.0ではFatal error2PHP7.4では2PHP8.0でも23PHP7.4では2PHP8.0ではFatal error4解答はTwitter (@yammerjp) で公開するスライドに掲載
36問題: 次のコードの出力は?おまけecho (true ? '1' : false ? '2' : '3');PHP7.4では2PHP8.0ではFatal error4https://3v4l.org/2sYXS“PHP 8.0.0 より前のバージョンでは、三項演算子は左から右に評価されていました。 他の殆どのプログラミング言語では、右から左に評価されます。 左から右に評価される振る舞いに依存することは、 PHP 7.4.0 以降は推奨されません。 PHP 8.0.0 以降は、三項演算子はどの演算とも結合しなくなっています。 ”https://www.php.net/manual/ja/language.operators.comparison.php