前置き
PHPの演習でわからない問題ありましたので、ご教示頂ければ幸いでございます。
実現したいこと
九九表の作成
→for文自体を関数として作成し、HTML内で出力
→上記関数内でechoは使わず、戻り値を使用する事
発生している問題・エラーメッセージ
下記コードでは出力されるのは確認できております。
が、echoをreturnに代えると"1"のみしか表示されません。
1*1の処理のみでループせずに終わってしまっているからと考えております。
ただ、echoの代わりに戻り値(return)を使用する場合がわかりません。
for文は 繰り返し(ループ)の為の処理、
return文は 実行したその時点で関数内での処理が終了し、値を戻すための処理、
との認識の為、何故繰り返し行いたい処理なのに、最初の処理で終了するreturnを使用するのか、
意図が理解できていない為、どこから手をつけたらいいかわからない状態でございます。
修正箇所についてご指摘、ご解説、
その他何かアドバイス頂ければ幸いでございます。
該当のソースコード
php
1<?php 2 3function kuku(){ 4 for($i=1;$i<=9;$i++){ 5 for($j=1;$j<=9;$b++){ 6 echo $a*$b; 7 }echo "<br>"; 8 } 9 } 10 11?> 12 13<!-- html --> 14↓ 15<body> 16 <style> 17 table, tr, td { 18 border: 2px #808080 solid; 19 } 20 </style> 21 22 <!-- 関数を出力 --> 23 <?php 24 echo kuku(); 25 ?> 26</body>
試したこと
下記のように無理矢理、配列として作成し出力しましたが、
html内の関数を出力している echo kuku();が
Array to string conversionとしてエラーが表示されます。
// foreach (kuku() as $abc) {
// foreach ($abc as $xyz) printf($xyz);
// echo "<br>" ;
// }
// function kuku() {
// $ans = array();
// for($i=1; $i<10; $i++)
// for($j=1; $j<10; $j++) $ans[$j][$i] = $i * $j;
// return $ans;
// }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。