#1〜#4 にてテキスト版(ターミナル上で動作する)読書管理ログを作成しました。
今回は復習として、ここまでに学習したことを振り返りながら、タスク管理アプリ(テキスト版)を作成しました。
やったこと
まず、今回作成するアプリケーションの要件定義(業務要件、機能要件)を行いました。
非機能要件(機能、拡張性、可用性、セキュリティなど)及び運用・保守要件の定義は省略しました。
今回書いたコード
<?php function createTask() { echo 'タスクを登録してください' . PHP_EOL; echo 'タスク名:'; $name = trim(fgets(STDIN)); echo '期限:'; $limit = trim(fgets(STDIN)); echo '進捗状況:'; $status = trim(fgets(STDIN)); echo '備考:'; $remarks = trim(fgets(STDIN)); echo '登録完了!' . PHP_EOL; return $tasks[] = [ 'name' => $name, 'limit' => $limit, 'status' => $status, 'remarks' => $remarks, ]; } function showTask($tasks) { foreach ($tasks as $task) { echo 'タスク名:' . $task['name'] . PHP_EOL; echo '期限:' . $task['limit'] . PHP_EOL; echo '進捗状況:' . $task['status'] . PHP_EOL; echo '備考:' . $task['remarks'] . PHP_EOL; echo '-----------' . PHP_EOL; } } $tasks = []; while (true) { echo 'メニューを選択してください' . PHP_EOL; echo '1:タスクを登録する' . PHP_EOL; echo '2:タスク一覧を表示する' . PHP_EOL; echo '9:終了する' . PHP_EOL; $i = trim(fgets(STDIN)); if ($i === '1') { $tasks[] = createTask(); } elseif ($i === '2') { showTask($tasks); } elseif ($i === '9') { break; } }
備忘録(つまづいた点など)
タスクを登録する際の関数(createTask)を呼び出す際に、
$tasks[] = createTask();
ではなく、
$tasks = createTask();
としてしまい、エラーが生じた。
タスクを表示する際の関数(showTask)を定義する際に、
引数を記載しておらず、
変数が定義されていませんのエラーが生じた。