◆20200907 PHP foreach文 代替構文 問題演習
本日の授業内容
要約
○foreach文
配列を用いて繰り返し処理を行う際に使用する。
foreach(処理に使う配列+as+配列内の値を入れる変数)
・ . PHP_EOL
ソースコード上で改行させるコード
○foreach文 連想配列を用いた使用法
foreach(処理に使う配列+ as+ $key => $value) {
echo $key;←キー
echo $value;←要素内の値
}
○代替構文
HTMLとPHPを混合して構文をつくる
if、 while、 for、 foreach、等を使用する
※if文を使った使用例
<? php if (第一条件式) : ?>
HTMLコード
<? php elseif(第二条件式):?>
HTMLコード
<? php else:?>
HTMLコード
<? php endif;?>
<?php 条件式:?>ではじめ、 <? php end〇〇;?>で終わる形にする。
<注意>HTML上でPHPで記述したものを表示させるときは<php echo・・・?>を記述
以下板書
〇foreach文
11章 05_foreach.phpより
< h1 > foreach文1</ >
$numList = [100, 200, 300];
echo '<pre>';
var_dump($numList);
echo '</pre>';
// 繰り返し処理に使用する配列
// +as
// + 配列内の値を入れる変数(好きな名前でおk。よく使われるのは$val、$value)
// foreachは配列を使った繰り返し処理
// asの左側に配列以外の変数を指定するとWarningエラーになる。
// 配列内の値をasの右側で宣言した変数に代入しながら繰り返し処理を実行
}
// 問題
// 好きな食べ物を配列で管理してforeachを使ってリストとして出力する事
// これを入れてあげないとソースコードが見づらくなる!
};
echo '</ul>';
?>
〇foreach文 キーと要素内の値を使用した場合
11章 06_foreach.phpより
< h1 > foreach文2</h1 >
$items = [
'f-001' => 'りんご',
'f-002' => 'みかん',
'd-001' => '水',
];
echo '<pre>';
var_dump($items);
echo '</pre>';
// 繰り返し処理に使用する配列
// +as
// + 配列内の値を入れる変数(好きな名前でおk。よく使われるのは$key => $value)
}
// 問題
// 四国番号と県庁所在地
// 連想配列で管理
// 5行2列テーブルで表示
// 最初の行は「県番号」「県庁所在地」という見出し行にする
$sikoku = [
];
echo
' <tr>'.
'<th>'. '県番号'. '</th>'.
'<th>'. '県庁所在地'. '</th>'.
echo
'<tr>'.
'<td>'.$key. '</td>'.
};
?>
〇代替構文
式
HTMLコード
HTMLコード
HTMLコード
<h1 > 代替構文1</h1 >
<h2>1回目の出力</h2>//制御構文
<?php
echo '<ul>';
echo '<li>水</li>';
echo '<li>お茶</li>';
echo '<li>コーラ</li>';
echo '</ul>';
echo '<ul>';
echo '<li>クッキー</li>';
echo '<li>チョコ</li>';
echo '<li>マシュマロ</li>';
echo '</ul>';
}
?>
<h2>2回目の出力</h2>//これはわかりづらい
<ul>
<li>水</li>
<li>お茶</li>
<li>コーラ</li>
</ul>
<ul>
<li>クッキー</li>
<li>チョコ</li>
<li>マシュマロ</li>
</ul>
<h2>3回目の出力</h2>//代替構文を用いたもの。わかりやすい。
<ul>
<li>水</li>
<li>お茶</li>
<li>コーラ</li>
</ul>
<ul>
<li>クッキー</li>
<li>チョコ</li>
<li>マシュマロ</li>
</ul>
問題演習
<!DOCTYPE html>
<html lang="ja">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>代替構文1</title>
</head>
<body>
<h2>問題</h2>
<p>四国配列を使ってテーブルを表示させること・代替構文使用</p>
<table border="1" style=border-collapse:collapse;>
<tr>
<th> 県番号 </th>
<th> 県庁所在地 </th>
</tr>
<?php
$sikoku = [
];
?>
<tr>
</tr>
</table>
<h2>問題</h2>
<p>date関数を使ってアクセス時の秒数を取得すること</p>
<p>秒数が0~20の場合は中華料理のメニューを表示</p>
<p>秒数が21~40の場合は日本料理のメニューを表示</p>
<p>秒数が41~59の場合はイタリアンのメニューを表示</p>
<p>確認のため秒数も表示する事</p>
<?php
$menu = [
'ラーメン・ギョーザ・チャーハン',
'寿司・納豆・わさび',
];
?>
<?php
$timestamp = date('s');
echo $timestamp;
echo '<br>';
?>
</body>
</html>
問題解答をブラウザで表示
12章 02_other.phpより問題演習
<?php
$osList = [
];
$items = [
'f-001' => 'りんご',
'f-002' => 'みかん',
'd-001' => '水',
];
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>代替構文2</title>
</head>
<body>
<h1>制御構文</h1>
<h2>1回目の出力</h2>
<?php
for ($i = 0; $i < count($osList); $i++) {
echo '<div class="box">';
echo '<h3>おすすめ商品 No.' . ($i + 1) . '</h3>';
echo '<p>' . $osList[$i] . '</p>';
echo '</div>';
}
?>
<h2>2回目の出力</h2>
<?php
foreach ($items as $key => $val) {
echo '<div class="box">';
echo '<h3>' . $val . '</h3>';
echo '<p>商品コード:' . $key . '</p>';
echo '</div>';
}
?>
------ここから問題--------------
<h2>代替構文</h2>
<h2>1回目の出力</h2>
<div class="box">
</div>
<h2>2回目の出力</h2>
<div class="box">
</div>
</body>
</html>