Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クイズを作ってPHPに親しむ / Make quizzes and get familiar with PHP

クイズを作ってPHPに親しむ / Make quizzes and get familiar with PHP

クイズを解くだけでなく、作ることもPHPに親しむ方法の一つです。作ることの良さとコツを、実例をもとに紹介します。
2023/03/25に開催されたPHPerKaigi 2023 (Day2 LT) にて発表した内容です。

題材となったクイズはこちら
https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/

yammerjp

March 25, 2023
Tweet

More Decks by yammerjp

Other Decks in Programming

Transcript

  1. 5

  2. 7 出題例: 次のコードの実行結果は? PHPクイズとは bool(true) bool(true) bool(true) 1 <?php $var

    = '0'; var_dump(isset($var)); var_dump(empty($var)); var_dump(is_null($var)); bool(true) bool(true) bool(false) 2 bool(true) bool(false) bool(false) 3 bool(false) bool(false) bool(false) 4
  3. 8 出題例: 次のコードの実行結果は? PHPクイズとは <?php $var = '0'; var_dump(isset($var)); var_dump(empty($var));

    var_dump(is_null($var)); bool(true) bool(true) bool(false) 2 2 解説: https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/
  4. 26 出題例(普通): 次の実行結果は? クイズを作るコ (難易度を調整) bool(true) bool(true) bool(true) 1 <?php

    $var = '0'; var_dump(isset($var)); var_dump(empty($var)); var_dump(is_null($var)); bool(true) bool(true) bool(false) 2 bool(true) bool(false) bool(false) 3 bool(false) bool(false) bool(false) 4 再掲
  5. 27 出題例(難問): $valの値は? クイズを作るコツ (難易度を調整) <?php $val = count(array_keys([ "0"

    => "a", " 0"=> "b", "01" => "c", null => "d", "e", true => "f", false => "g", ])); 5 1 6 2 7 3 null 4
  6. 28 出題例(難問): $valの値は? クイズを作るコツ (難易度を調整) <?php $val = count(array_keys([ "0"

    => "a", " 0"=> "b", "01" => "c", null => "d", "e", true => "f", false => "g", ])); 5 1 解説: https://tech.pepabo.com/2022/10/05/php-conference-japan-2022-quiz/
  7. 30 ① 四択形式にする … 別解を避ける ② 信頼できる出典元から出題 … 公式ドキュメントや実行結果 →

    クイズを成立させ、納得感のある問題にする 3.答えの裏付け クイズを作るコツ
  8. 35 問題: 次のコードの出力は? おまけ PHP7.4では1 PHP8.0では2 1 <?php echo (true

    ? '1' : false ? '2' : '3'); PHP7.4では1 PHP8.0では Fatal error 2 PHP7.4では2 PHP8.0でも2 3 PHP7.4では2 PHP8.0では Fatal error 4 解答はTwitter (@yammerjp) で公開するスライドに掲載
  9. 36 問題: 次のコードの出力は? おまけ <?php echo (true ? '1' :

    false ? '2' : '3'); PHP7.4では2 PHP8.0では Fatal error 4 https://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