PHPの配列と関数・変数の関係についておしえてください。
解決したいこと
ここに解決したい内容を記載してください。
PHPの配列と関数、変数の関係についておしえてください。
下のコードで
・ifの戻り値の $comments[]
・変数で代入した $comments = []
・関数の引数とelseifの戻り値で使用している $comments
この3つの関係がよくわかりません。
・変数で使用している、$comments = [] は代入すると$comments[]だと思うのですが、なぜ関数で引数と戻り値で使用する際に、[]が入っていないのか?
・なぜifの戻り値に関しては、[]がついているのか?
・ここで変数はどのようなときに使用されているのか?
上記疑問点がありまして、教えて頂けると幸いです。
発生している問題・エラー
出ているエラーメッセージを入力
例)
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
PHP
例)
<?php
function bookRegister()
{
echo '読書ログを登録して下さい' . PHP_EOL;
echo '書籍名:';
$bookTitle = trim(fgets(STDIN));
echo '著者名:';
$name = trim(fgets(STDIN));
echo '読書状況(未読,読んでる,読了):';
$status = trim(fgets(STDIN));
echo '評価(5点満点の整数):';
$review = trim(fgets(STDIN));
echo '感想:';
$impressions = trim(fgets(STDIN));
echo '登録が完了しました' . PHP_EOL . PHP_EOL;
return [
'bookTitle' => $bookTitle,
'name' => $name,
'status' => $status,
'review' => $review,
'impressions' => $impressions,
];
}
function bookDisplay($comments) //ここの引数は$何故comments[]ではないのか
{
echo '登録済の読書ログを表示します' . PHP_EOL;
foreach ($comments as $comment) {
echo '書籍名:' . $comment['bookTitle'] . PHP_EOL;
echo '著者名:' . $comment['name'] . PHP_EOL;
echo '読書状況:' . $comment['status'] . PHP_EOL;
echo '評価:' . $comment['review'] . PHP_EOL;
echo '感想:' . $comment['impressions'] . PHP_EOL;
echo '---------------' . PHP_EOL;
}
}
$comments = []; //空の配列を代入すると→$comments[]になる認識
while (true) {
echo '1. 読書ログを登録' . PHP_EOL;
echo '2. 読書ログを表示' . PHP_EOL;
echo '9. アプリケーションを終了' . PHP_EOL;
echo '番号を選択してください (1,2,9) :';
$num = trim(fgets(STDIN));
if ($num === '1' || $num === '1') {
$comments[] = bookRegister(); //ここの$commentsは上の$comments = [] の変数を使っている認識
} elseif ($num ==='2' || $num === '2') {
bookDisplay($comments); //なぜここの$commentsは$comments[]ではないのか?
} elseif ($num ==='9' || $num === '9') {
break;
}
}
自分で試したこと
ここに問題・エラーに対して試したことを記載してください。
関数で引数に[]を入れたらエラーになりました。