33日目:PHP 学習:親クラスのコンストラクタ情報一部引き継ぎ、閲覧者の行動による条件分岐 (parent、href="url?閲覧者行動情報")
<学習日>
33日目
<学習内容>
① PHP Ⅲ(71-100%):親クラスのコンストラクタの一部引き継ぎ、アイコンの数で情報を見える化 (parent、fot文のアイコンへの適用)
② PHP Ⅳ(0-21%):閲覧者の行動(クリック)によるリンク先ページの条件分岐 (<a>リンクページ+クリックしたコンテンツ情報</a>)
<参考>
Progateレベル:144
<学習内容詳細>
本日はPHPの最終講義のⅣに少し足を突っ込んだところで終了です。
だんだんと最終系のHPの形も見えてきて、楽しくなってまいりました^^
① PHP Ⅲ(71-100%):親クラスのコンストラクタの一部引き継ぎ、アイコンの数で情報を見える化 (parent、fot文のアイコンへの適用)
Ⅲの最後では、クラスの引継ぎの中で「どう省力化していくのか」という点を学んでいきました。
具体的には親クラスのコンストラクタを、一部引き継ぐときに「parent」ですっきりさせましょうという内容です。
では、さっそく具体的なcodeを挙げながら、振り返っていきます!
・親クラスのコンストラクタの内容を、子クラスのコンストラクタの内容に一部引き継ぐには
親クラスを「extended」した子クラスにおいて、一部でもコンストラクタの修正が入った場合には、全てをオーバーライドする必要がある。
ただし、オーバーライドの内容は殆ど親クラスのコンストラクタと重複することが想定されるので、部分的に親クラスのコンストラクタを引き継ぐ方法がある。
具体的には「parent」を使用して、子クラスの中にて以下のようなcodeとなる。
public function__construct($a, $b, $c){
parent::__construct($a, $b)
$cに対する処理
}
上記のcodeで、$a及び$bに対しては親クラスのコンストラクタと同じ処理が、加えて$cに対しては、ここで指定した処理が行われる。
・レモンマークの数で酸味を表示したい場合
その商品の酸味プロパティに、各商品ごとの酸味を数字でデータ格納しておく。その状態でHTML上に「for」文を挿入し、酸味データの数だけ、特定の画像を繰り返し表示させればOK。
具体的には以下のようなcodeとなる。
<?php for($i=0; $i<$food->getSour(); $i++): ?>
<img src="レモンマークのurl">
<?php endfor ?>
for構文において、処理の中に$iが使用されていない場合でも、$iの回数だけ処理を繰り返すということ。
この場合は、呼び出されたインスタンスごとに、酸味データの回数だけ、レモンマークが繰り返して表示されるというcodeになる。
② PHP Ⅳ(0-21%):閲覧者の行動(クリック)によるリンク先ページの条件分岐 (<a>リンクページ+クリックしたコンテンツ情報</a>)
PHPも最終節に入りました^^
ここでは各メニューをクリックしたときに、クエリ情報としてリンク先のurlに情報を加えて、各メニューごとのレビューページにアクセスするというWEBアプリを開発します!
ではさっそく、具体的なcodeを挙げながら、振り返っていきます!
・リンクのはり方と、リンクに追加情報を追加する方法
リンクは<a href="url"></a>で作成することが出来るが、ここに特定の情報を追加したい場合は、hrefの中身に情報を追加する。
たとえば、各メニューごとの、そのメニューに関する情報を付記したいとすると、具体的なcodeは以下のとおり。
<a href="リンクのurl?S追加情報"></a>
例えばMenクラスの中で定義した、$kenインスタンスの名前プロパティ$nameを情報として追加したい場合は、以下のとおりとなる。
<a href="infomation.php?<?php echo $ken->getName()?>"></a>
これで、リンク先にはケンのページとして設定することが出来る。
(ユーザーの行動<クリック>に紐づいた設計にすることができるということが重要)
ということで、Ⅳについてはさわりの部分だけとなりましたが、明日以降どんどん進めていこうと思います!
ではでは、1日でも長く続けられるように頑張っていきます^^
同志の方、一緒に頑張っていきましょう!