PHPでオブジェクト指向プログラミングをする方法について入門者向けに解説しています。
【PHP】オブジェクト指向プログラミング
オブジェクト指向でプログラムを設計するメリットは次の通りです。
– | メリット |
---|---|
1 | 大規模なプログラムを書きやすい |
2 | プログラムの柔軟性が高い(仕様変更・再利用しやすい) |
3 | 綺麗に書けば理解しやすいプログラムを書ける |
オブジェクト指向でプログラムを設計するデメリットは次の通りです。
– | メリット |
---|---|
1 | プログラム設計に時間が掛かりやすい |
2 | プログラムの処理時間が長くなる |
3 | 綺麗に書かないと理解しにくいプログラムになる |
一般的にオブジェクト指向プログラミングは大規模なプログラムを作る場合に向いているとされています。
逆に小規模なプログラムの場合は、関数型で設計するのが向いています。
【class文】クラス定義とインスタンス生成
PHPでは、class文を用いてクラスを定義します。
class文でクラス定義する書式は下記の通りです。
【書式】
class クラス名{ }
インスタンス生成する書式は下記の通りです。
【書式】
$変数名 = new クラス名();
※変数名がインスタンス(実体)となります。
(クラスは設計図)
【変数】インスタンス変数の操作とアクセス修飾子
インスタンス変数とは、インスタンス内のみで使えるローカル変数です。
メンバ変数とも呼ばれます。
PHPでは、インスタンス変数の宣言にアクセス修飾子を使います。
(アクセス修飾子の違いでアクセスできる範囲が変わります)
アクセス修飾子 | 内容 |
---|---|
public | クラス内・クラス外のどこからもアクセス可能 |
private | クラス内のみアクセス可能 |
protected | クラス・子クラスのみアクセス可能 |
インスタンス変数とは、インスタンス内のみで使えるローカル変数です。
メンバ変数とも呼ばれます。
PHPでインスタンス変数の値を取得する場合の書式は以下の通りです。
【書式】
$変数名 = $インスタンス名->インスタンス変数名;
インスタンス変数へ値を代入・アクセスする書式は以下の通りです。
【書式】
$インスタンス名.インスタンス変数名 = 値 ;
pre title=”https://github.com/nishizumi-lab/sample/blob/master/php/Basic/class/accessInstanceVariable.php”>
インスタンス変数への代入を行った時、クラス定義時に宣言されていなかった場合でも自動的に生成してくれます。
これによりインスタンス変数を外部から追加することができます。
【メソッド】コンストラクタ、メソッド
インスタンスの生成時にインスタンス変数に値をセット(初期化)できます。
これを行うクラス内のメソッドをコンストラクタ(初期化メソッド) といいます。
メソッド(method)とは、クラスが持つ関数のことです。
メソッドには操作・処理の内容を記述します。
PHPでは、class文中に以下の書式でメソッドを記述できます。
【書式】
function メソッド名(引数){ 処理を記述; }
メソッドの呼び出しは次のように行います。
【呼び出し】
$インスタンス名->メソッド名();