登録した複数のメモを表示したい
解決したいこと
ここに解決したい内容を記載してください。
メモとTodoアプリ機能がついたWEBアプリをテキストバージョンをまず作成しております。
コードで分かるように、登録した複数のメモを表示したいのですが、アプリケーションが終了して処理から抜けてしまいます。
メモの登録は繰り返し登録できるようにできたのですが、それからメモの表示がうまくできません。
解決方法を教えて頂けますと幸いです。
また、初心者で練習中なのでコードを見てもっといいやり方などあれば
気になった点などあればご教授頂けると幸いです。
・MEMO MENU分岐の部分です。
宜しくお願い致します。
発生している問題・エラー
出ているエラーメッセージを入力
例)
NameError (uninitialized constant World)
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
PHP
<?php
function memoMenuChoice() {
echo 'MEMO MENU' . PHP_EOL;
echo '1. メモを登録' . PHP_EOL;
echo '2. メモリストを表示' . PHP_EOL;
echo '3. ToDoリストへ' . PHP_EOL;
echo '9. アプリケーションを終了' . PHP_EOL;
echo '番号を選択してください(1,2,3,9):';
return trim(fgets(STDIN));
}
function todoListChoice() {
echo 'ToDo MENU' . PHP_EOL;
echo '1. やることを登録' . PHP_EOL;
echo '2. やることリストを表示' . PHP_EOL;
echo '3. MEMOリストへ' . PHP_EOL;
echo '9. アプリケーションを終了' . PHP_EOL;
echo '番号を選択してください(1,2,3,,9):';
return trim(fgets(STDIN));
}
function registerMemo() {
echo 'MEMOを登録してください。' . PHP_EOL;
echo '1. メモのタイトル:';
$memoTitle = trim(fgets(STDIN));
echo '2. メモの詳細:';
$memoBody = trim(fgets(STDIN));
echo 'メモの登録が完了しました。' . PHP_EOL;
return [
'memoTitle' => $memoTitle,
'memoBody' => $memoBody,
];
}
function memoListDisplay($memoListChoices) {
foreach ($memoListChoices as $memoListChoice) {
//メモのリスト表示
echo '登録済みのMEMOを表示します:'. $memoListChoice['memoTitle'] . PHP_EOL;
echo '1. メモのタイトル:' . $memoListChoice['memoBody'] . PHP_EOL;
echo '2. メモの詳細:' . PHP_EOL;
echo '----------' . PHP_EOL;
}
}
function registerToDo() {
echo 'やることを登録してください。' . PHP_EOL;
echo '1. やることのタイトル:';
$todoTitle = trim(fgets(STDIN));
echo '2. やることの詳細:';
$todoBody = trim(fgets(STDIN));
echo 'やることの登録が完了しました。' . PHP_EOL;
}
function toDoListDisplay() {
echo '登録済みのやることリストを表示します。' . PHP_EOL;
//ここの下に配列使って登録したTODO表示。
echo '1. やることのタイトル:' . PHP_EOL;
echo '2. やることの詳細:' . PHP_EOL;
echo '----------' . PHP_EOL;
}
echo '-TOP MENU-' . PHP_EOL;
echo '1. メモを使う' . PHP_EOL;
echo '2. Todoを使う' . PHP_EOL;
echo '9. アプリケーションを終了' . PHP_EOL;
echo '番号を選択してください(1,2,9):';
$topMenuChoice = trim(fgets(STDIN));
$todoListChoice = null;
$memoListChoice = null;
$memoListChoices = [];
//TOPMENUの分岐
if ('1' == $topMenuChoice || '1' == $topMenuChoice) {
$memoListChoice = memoMenuChoice();
} elseif ('2' === $topMenuChoice || '2' === $topMenuChoice) {
$todoListChoice = todoListChoice();
} elseif ('9' || '9' === $topMenuChoice) {
//アプリケーションを終了
}
//MEMO MENUの分岐
while ('1' === $memoListChoice || '1' === $memoListChoice) {
if ('1' == $memoListChoice || '1' == $memoListChoice) {
// while ('1' === $memoListChoice || '1' === $memoListChoice) {
$memoListChoices[] = registerMemo();
$memoListChoice = memoMenuChoice(); //ここで2の表示に移りたいが選択すると処理が終わってしまう。
// }
} elseif ('2' == $memoListChoice || '2' == $memoListChoice) {
memoListDisplay($memoListChoices);
$memoListChoice = memoMenuChoice();
} elseif ('3' == $memoListChoice || '3' == $memoListChoice) {
$todoListChoice = todoListChoice();
} elseif ('9' == $memoListChoice || '9' == $memoListChoice) {
//アプリケーションを終了
}
}
//TODO MENUの分岐
if ('1' == $todoListChoice || '1' == $todoListChoice) {
registerToDo();
} elseif ('2' == $todoListChoice || '2' == $todoListChoice) {
toDoListDisplay();
} elseif ('3' == $todoListChoice || '3' == $todoListChoice) {
memoMenuChoice();
} elseif ('9' == $todoListChoice || '9' == $todoListChoice) {
//アプリケーションを終了
}
自分で試したこと
何パターン化試しましたが、イメージがでてきません。