29日目:PHP 学習:HTMLにPHPを組み込む!($this、コンストラクタ、引数、HTMLへのPHPの組み込み)
<学習日>
29日目
<学習内容>
① PHP Ⅱ(23-50%):HTMLにPHPを組み込む!($this、コンストラクタ、引数、HTMLへのPHPの組み込み)
<参考>
Progateレベル:138
<学習内容詳細>
本日は昨日に引き続き、PHP Ⅱの内容を進めていきました^^
① PHP Ⅱ(23-50%):HTMLにPHPを組み込む!($this、コンストラクタ、引数、HTMLへのPHPの組み込み)
はい、ということで、ややゆっくりめのペースで進めておりますが、今日の内容は「混乱しやすい」「基本的で重要」な単元が多かったので、ゆっくりとかみ砕きながら進めました^^
後半では、HTMLにPHPを実践的な内容で組み込むことを勉強でき、かなり楽しかったです!
明日以降の内容にも期待が高まります^^
では具体的なcodeを挙げながら、ハイライトで振り返っていきます。
・呼び出したインスタンスのプロパティを、メソッドに反映させたい場合は「$this->プロパティ名」を使う。
例えば、インスタンス名を$kenにして、その時のプロパティを各々「$nameをKen」「$ageを20」にして、メソッドとして「Kenは20歳です」を表示させたいとする。
このときのcodeは以下のとおり。
class Men {
public $name;
public $age;
public function info(){
echo "{$this->name}は{$this->age}歳です"
}}
$ken = new Men();
$ken->name = 'Ken';
$ken->age = '20';
$ken->info();
・インスタンス生成時に自動発動する関数「public function __construct()」
このクラスのインスタンスを生成したときに、関数(メソッド)を呼び出さずとも、必ずある動作をして欲しいといったニーズがある場合に「public function __construct()」というメソッドを記述する。使用方法は普通のメソッドと同じ。
例えば、インスタンスを生成するたびに、必ず「インスタンスを生成しました」と表示させたい場合には、以下のとおりのcodeとなる。
class クラス名 {
public function __construct(){
echo "インスタンスを生成しました";
}}
注意点としては「functionの後にスペースが必要」なことと、「アンダーバーは2つ続けて書く」ということ。
・引数と変数の引用について
1.インスタンスを生成するときに、コンストラクタに引数をつっこめる。
2.コンストラクタ内でインスタンス内の変数に、引数を設定することができる。
以上を合わせると、「インスタンス生成時に引数としてつっこみたい値を記述⇒インスタンスの変数に値がつっこまれる⇒インスタンスの変数を$this->プロパティ名に代入する」という流れとなる。
例えば、以下のようなcodeで、「彼の名前はKenです」と表示させることができる。
class Men {
public $name;
public function __construct($name){
this->name = $name;
}
public function info(){
echo "彼の名前は{$this->name}です"
}}
$ken = new Men('Ken');
$ken->info();
上記の例だとうま味が感じられないが、データ数や引用する変数の数が増えれば増えるほど、必須のcodeとなるはず。
・HTMLにPHPを挿入する方法について
挿入する方法は最初に勉強した通りで、<?php ?>の中にPHPのcodeを記述するだけとなる。ただしforeachやforの繰り返しやifなどの条件分岐を組み込めて、初めてPHPをHTMLに組み込む威力が発揮できるので、今回はforeachを突っ込む場合を例にとってみる。
関数の組み込み方は、すこしcodeのコツと形式のポイントがあるので、何回か書いてみて慣れてしまうべし。
例えば、PHPで配列として$men=array($ken,$taku,$masa)を定義して、各々の年齢を<p></p>として一覧にしたい場合、以下のようなcodeとなる。
(クラスで$nameをプロパティとして設定しており、$men=array($ken,$taku,$masa)も記述済みとして)
<?php foreach($men as $man): ?>
<p><?php echo $man->name ?></p>
<?php endforeach ?>
ここでポイントは、PHP内で関数は「関数名(){処理}」で記載するが、{}の部分を消して、「{」を「:」で代用し、「}」は「end関数名」で代用するということ。
繰り返し関数を実際にHTMLに組み込めると、かなり構造的にHTMLを作成することが出来るようになる未来が見えるので、ワクワクしながら勉強を進めることが出来ました^^
ではでは、1日でも長く続けられるように頑張っていきます^^
同志の方、一緒に頑張っていきましょう!