PHPのオブジェクト指向プログラミングについてのリファレンス。
-
オブジェクト変数の値渡し
オブジェクトの値渡しとは、あるオブジェクト変数の値を、他のオブジェクト変数に代入すること。2つのオブジェクト変数は、別々のオブジェクト変数となる。
-
オブジェクト変数の参照渡し
オブジェクト変数の参照渡しとは、あるオブジェクト変数を、他のオブジェクト変数から参照すること。一方のオブジェクト変数は、もう一方のオブジェクト変数の、別名(エイリアス)となる。
-
クラス、プロパティ、メソッドの、定義と呼び出しの基本
クラス、プロパティ、メソッドの、定義と呼び出しの基本的書式。
-
クラスの定義と命名規則
クラスの定義は、classのあとに、半角の空白、クラス名を書き、次に、プロパティやメソッドを、波括弧{}で一括りにして書く。
-
プロパティの定義と命名規則
プロパティの定義は、public、protected、privateにより、アクセス可能範囲を宣言したあとに、半角の空白、$、プロパティ名を続けて書き、次に、代入演算子を使い、プロパティに値を設定する。
-
プロパティのアクセス可能範囲
プロパティは、public、protected、privateにより、アクセス可能範囲(参照可能範囲/アクセス権/アクセス制限)を宣言する必要がある。
-
メソッドの定義と命名規則
メソッドの定義は、functionのあとに、半角の空白、メソッド名を書き、次に、メソッド内の処理文を、波括弧{}で一括りにして書く。
-
引数付きメソッド
メソッドは、引数で、データを受け渡すこともできる。
-
メソッドのアクセス可能範囲
メソッドは、public、protected、privateにより、呼び出し可能範囲(参照可能範囲/アクセス権/アクセス制限)を宣言することができる。何も宣言しない場合は、publicとなる。
-
インスタンスを作成
インスタンスは、newのあとに、クラス名を書き、オブジェクト変数に代入することで作る。インスタンスを作ることで、プロパティやメソッドにアクセスできるようになる。
-
疑似変数$thisで、メソッドから同じクラス内のプロパティへアクセス
メソッドの内部から、同じクラス内のプロパティへアクセスするには、疑似変数「$this」を使う。
-
疑似変数$thisで、メソッドから同じクラス内の別のメソッドを呼び出す
メソッドの内部から、同じクラス内の別のメソッドを呼び出すには、疑似変数「$this」を使う。
-
オブジェクト定数(クラス内定数)
オブジェクト定数(クラス内定数)は、「const」キーワードを前に付けて定義する。
-
静的プロパティ
静的プロパティは、プロパティを定義するときに、「static」キーワードを前に付けて定義する。静的プロパティには、「クラス名::$プロパティ名」で、アクセスする。インスタンスや、矢印演算子「->」を使ったアクセスはできない。
-
静的メソッド
静的メソッドは、メソッドを定義するときに、「static」キーワードを前に付けて定義する。静的メソッドは、「クラス名::メソッド名()」で呼び出すことができる。静的メソッドの内部から、疑似変数「$this」で呼び出すことはできない。
-
引数付き静的メソッド
静的メソッドは、引数で、データを受け渡すことができる。
-
コンストラクタ・メソッド
コンストラクタ・メソッドのあるクラスのインスタンスを作成すると、その度に、コンストラクタ・メソッドを呼び出す。
-
引数付きコンストラクタ・メソッド
コンストラクタ・メソッドは、引数で、データを受け渡すことができる。
-
デストラクタ・メソッド
デストラクタ・メソッドのあるクラスのインスタンスを破棄すると、デストラクタ・メソッドを呼び出す。
-
「extends」キーワードで、他のクラスのプロパティとメソッドを継承
他のクラスのプロパティとメソッドを継承するには、「extends」キーワードを使う。複数のクラスから継承することはできない。
-
同じクラスのオブジェクト定数(クラス内定数)へアクセス
同じクラスのオブジェクト定数(クラス内定数)へアクセスするには、「self」キーワードを使うことができる。
-
親クラスのオブジェクト定数(クラス内定数)へアクセス
親クラスのオブジェクト定数(クラス内定数)へアクセスするには、「parent」キーワードを使うことができる。
-
同じクラスの静的プロパティへアクセス
同じクラスの静的プロパティへアクセスするには、「self」キーワードを使うことができる。
-
親クラスの静的プロパティへアクセス
親クラスの静的プロパティへ、子クラスからアクセスするには、「parent」キーワードを使うことができる。
-
同じクラスの静的メソッドを呼び出す
同じクラスの静的メソッドを呼び出すには、「self」キーワードを使うことができる。
-
親クラスの静的メソッドを呼び出す
親クラスの静的メソッドを、子クラスから呼び出すには、「parent」キーワードを使うことができる。
-
親クラスから継承したメソッドをオーバーライド(再定義)
親クラスから継承したメソッドをオーバーライド(再定義)するには、子クラス内で、同じメソッド名のメソッドを定義する。
-
finalメソッド
子クラスで、メソッドを、オーバーライド(再定義)できないようにするには、親クラスでメソッドを定義するときに、finalキーワードを前に付け、finalメソッドにする。
-
finalクラス
子クラスを作れないようにするには、親クラスを定義するときに、finalキーワードを前に付けて定義する。finalクラスを拡張し、子クラスを作ろうとすると、エラーとなる。
-
親クラスのコンストラクタ・メソッド
子クラスにコンストラクタ・メソッドがなければ、親クラスのコンストラクタ・メソッドを、自動的に呼び出す。子クラスにコンストラクタ・メソッドがあるときは、親クラスのコンストラクタ・メソッドを、自動的には呼び出さない。親クラスのコンストラクタ・メソッドを呼び出すには、子クラスのコンストラクタの中で、parent::__construct();とする。
-
親クラスのデストラクタ・メソッド
子クラスにデストラクタ・メソッドがなければ、親クラスのデストラクタ・メソッドを、自動的に呼び出す。子クラスにデストラクタ・メソッドがあるときは、親クラスのデストラクタ・メソッドを、自動的には呼び出さない。親クラスのデストラクタ・メソッドを呼び出すには、子クラスのデストラクタの中で、parent::__destruct();とする。
-
抽象クラス、抽象メソッド
抽象クラスは、クラスを定義するとき、「abstract」キーワードを前に付けて定義する。抽象クラスは、インスタンスを作れない。抽象メソッドは、メソッドを定義するとき、「abstract」キーワードを前に付けて定義する。抽象メソッドを持つクラスは、抽象クラスでなければならない。抽象メソッドは、実装を定義できないので、実装は、子クラスにおいて、必ず定義しなければならない。
-
インターフェイス
インターフェイス(オブジェクト・インターフェイス)は、あるクラスが実装する必要があるメソッドを、宣言しておくもの。
-
インターフェイスの継承
インターフェイス(オブジェクト・インターフェイス)は、クラスと同様、「extends」演算子で継承できる。
-
複数のインターフェイスの継承
インターフェイス(オブジェクト・インターフェイス)は、複数のインターフェイスを継承できる。「extends」演算子のあとに、複数のインターフェイスを、カンマで区切りで指定する。
-
インターフェイスの定数
インターフェイス(オブジェクト・インターフェイス)における定数は、オブジェクト定数(クラス内定数)同様、「const」キーワードを前に付けて定義する。アクセスは、インターフェイス名::定数名。
-
クラスやインターフェイスをオートローディング
未定義のクラスやインターフェイスを使おうとすると、自動的に呼び出す(オートローディングする)ようにするには、spl_autoload_register関数を使う。
-
オブジェクトの反復処理
アクセス権限がある プロパティは、foreach文などの反復処理に使用できる。