php には非常に魔法のメソッドのクラスがあり、通常は外部から明示的に呼び出されることはなく、二重アンダースコア (__) を使用します。魔法のメソッド。 PHP 関係者は、二重アンダースコアで始まる他のメソッドを定義することを推奨していません。
今回は属性のオーバーロードメソッド:get/set/isset/unsetを紹介します
リーリーこれらのメソッドは、アクセスできないプロパティにアクセスする場合にトリガーされます。
以下の通り:
リーリー結果出力:
リーリー特に強調したいのは、これらのメソッドは、(現在のアクセス許可に基づいて) この属性が存在しない場合にのみトリガーされるということです。したがって、get/set 処理には特定のキー値を使用することを強くお勧めします。特に、対応するキー値にはアクセス権の問題があってはなりません (上記の例の a と b など)。クラス内、クラス外、サブクラス内でエラーが発生する 開発中にさまざまな処理メソッドが予期しない戻り値を生成する可能性があり、バグが発生しやすくなります。
空のメソッドは属性のオーバーロード メソッドを呼び出すことができません。リーリー
この例では、__set自体の戻り値は無視され、__getは呼び出されません。さらに: プロパティのオーバーロードされたメソッドは public として宣言する必要があり、これらのメソッドを通じて静的プロパティを参照渡しすることはできません。また、これらのメソッドを静的に宣言することもできません。
もちろん、魔法の方法を使用すると、反射システムにも影響します。
http://www.bkjia.com/PHPjc/1106389.html