はじめに
実務でphpに触れる事が多くなってきました。
その中で、「class」の動きがいまいち分からなかったので、自分の理解度チェックの意味も込めて記事にしたいと思います。
class
先ずは簡単なclassを使用したソースを見てみましょう!
<?php
//①クラスを定義
Class Animal{
//④タローが代入される
//プロパティ
public $name;
//⑤名前を出力させる関数を定義
public function animalName(){
echo $this->name;
}
}
//②インスタンス生成
$dog = new Animal();
//③クラス内のプロパティに渡す値
$dog->name = "タロー";
//⑥関数を発動
$dog->animalName();
//⑦
//出力結果 タロー
?>
このソースを分解して見ていきましょう。
//①クラスを定義
class Animal{
}
①
今回のメインですね。
classを定義する事で、まとまった処理(関数、変数など)を作成する事ができます。
classはあくまでも「処理」のまとまりなので、classだけではプログラムは動作しません。
//②インスタンス生成
$dog = new Animal();
②
Animalクラスの処理に値(実態)を投げるため、インスタンスを生成します。
//③クラス内のプロパティに渡す値
$dog->name = "タロー";
③
実際に渡す値を代入します。
ここのnameは④の$nameへ->を使用して値を渡す感じです。
//④タローが代入される
//プロパティ
public $name;
④プロパティまたはメンバ変数と呼ばれる変数です。
ここにインスタンスで生成した値が入ってきます
//⑤名前を出力させる関数を定義
public function animalName(){
echo $this->name;
⑤
ここのnameは④のnameとなります。
注意として$を付けないようにしましょう。
また、なぜ$thisが必要なのかというと、変数はグローバル変数とローカル変数があります。
ただの$nameにしてしまうと、グローバル変数を指してしまうので、このclassで使用する
変数だと分かるように、$thisを付けます。
//⑥関数を発動
$dog->animalName();
⑥
最後に関数を発動させて、nameを出力させます。
自分的に最初は$this->の意味や、インスタンスってなんやねんって感じでしたけど
使っていくうちになんとなく理解できました。