2013年3月23日土曜日

オーバーロード

PHPのオーバーロードは、動的にメンバ変数やメンバ関数を作成する機能を指します。

オーバーロードメソッドが起動するのは、
宣言されていないプロパティやメソッドを操作しようとしたときです。

また、現在のスコープからはアクセス不能なプロパティやメソッドを
操作しようとしたときにも起動します。

以下にその例を示します。

サンプルコード 実行結果
set a to 1
get a
1

Is a set?
bool(true)
Unset a
Is a set?
bool(false)

get _p

Notice: Undefined property via __get(): _p in 
C:\xampp\htdocs\test.php on line 51 in 
C:\xampp\htdocs\test.php on line 27
と、このように動的にメンバ変数を作成したり、取得・削除も行うことができました。
また、外部からアクセス不可能なメンバ変数にアクセスした時も
オーバーロードメソッドが実行されました。

いざ私の場合に置き換えてみますと有効な使い道は思いつかないのですが、
知っておいて損することはないので覚えておきたいです。

0 件のコメント:

コメントを投稿