PHP逆引き大全 516の極意

基本プログラミングの極意 - Tips245 存在しないメソッドへのアクセスを制御する

登録タグ
PHP
Icon comment count 0
Icon stock count 0

1-16クラス・オブジェクトTips245 存在しないメソッドへのアクセスを制御する

Level2

Point__callメソッド、__callStaticメソッドを宣言する

クラスに定義されていないメソッドを実行した場合に処理を行うには、__callメソッド__callStaticメソッドを宣言します。

クラス内に__callメソッドを作成すると、クラスに定義されていないメソッドを実行しようとした場合に自動的にそのメソッドが実行されます。

__callメソッドはメソッド名と引数配列の2つの引数を持つメソッドを作成します。

プロパティ名には代入しようとしたメソッド名が渡され、引数配列には存在しないメソッドに指定された引数を順番に格納した配列が渡されます。

__callメソッドの宣言方法

class クラス名 {
  [アクセス権] function __call(メソッド名, 引数配列) {
    //存在しないメソッド実行時の処理
    return 戻り値;
  }
}

PHP5.3以降では、存在しない静的メソッドに対する処理も、__callStaticメソッドを宣言することで指定することができます。

出典情報

Medium

PHP逆引き大全 516の極意

  • 著者: 大家 正登, 茂木 健一, 鮫島 康浩, 谷中 志織

コメント

    コメントはありません