オブジェクト指向プログラミング

PHPのシンタックス

  1. HOME
  2. OOP

オブジェクト指向プログラミングの概要

クラス定義

オブジェクトにどんなプロパティがあり、メソッドがあるかを定義したものがクラスです。
プロパティとメソッドを定義するクラス
class クラス名 {
 プロパティの定義
 メソッドの定義
}

クラスの継承

OOPはプログラムコードの機能を改変、拡張したいとき「継承」を使います。
PHPでは継承をextendsキーワードを使って記述。子クラスが親クラスを指定する
class 子クラス extends 親クラス {
}

トレイト

PHPにはトレイトというコードのインクルード(読み込み)に似た仕組みがある。トレイトでプロパティやメソッドを定義しておくと、useキーワードでトレイトを指定するだけで、自分のクラスで定義してあるかのように利用できます。
トレイトの定義
trait トレイト名 {
//トレイトのプロパティ
//トレイトのメソッド
}

トレイトを利用するクラス
class クラス名 {
 use トレイト名;
 //クラスのコード
}

インターフェース

インターフェースは規格のようなものです。クラスが採用しているインターフェースを見れば、そのクラスで確実に実行できるメソッドと呼び出し方がわかる。interfaceキーワードをつけて宣言して定義し、採用するクラスではimplementsキーワードで指定する。
インターフェースの定義
interface インターフェース名 {
 function 関数名();
}

インターフェースを採用するクラス
class クラス名 implements インターフェース名 {
 //クラスのコード
}

抽象クラスト抽象メソッド

メソッド宣言のみを行って処理を実行しない特殊なメソッド定義があります。abstractキーワードをつけてメソッド宣言を行うことから抽象メソッドと呼びます。
そして、抽象メソッドが1つでもあるクラスにはabstractキーワードを付ける必要があり、抽象クラスと呼びます。
抽象クラスのインスタンスを作ることは出来ず、必ず継承して利用する。
抽象メソッドの機能を子クラスで上書きして実装します。
他の言語と違いPHPの抽象メソッドは初期機能を実装できません。
抽象クラス
abstract class 抽象クラス名 {
 abstract function 抽象メソッド名();
}

抽象メソッドを実装する
class クラス名 extends 抽象クラス名 {
 function 抽象メソッド名() {
  //メソッドをオーバーライドして機能を定義する
 }
}

※以降の章から個々に解説