ホームページ >バックエンド開発 >PHPチュートリアル >PHP マジック メソッド - 属性オーバーロード メソッド、PHP マジック属性オーバーロード_PHP チュートリアル

PHP マジック メソッド - 属性オーバーロード メソッド、PHP マジック属性オーバーロード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:57:52925ブラウズ

php マジック メソッド - 属性オーバーロード メソッド、php マジック属性オーバーロード

php には非常に魔法のメソッドのクラスがあり、通常は外部から明示的に呼び出されることはなく、二重アンダースコア (__) を使用します。魔法のメソッド。 PHP 関係者は、二重アンダースコアで始まる他のメソッドを定義することを推奨していません。

今回は属性のオーバーロードメソッド:get/set/isset/unsetを紹介します

リーリー

これらのメソッドは、アクセスできないプロパティにアクセスする場合にトリガーされます。

以下の通り:

リーリー

結果出力:

リーリー

特に強調したいのは、これらのメソッドは、(現在のアクセス許可に基づいて) この属性が存在しない場合にのみトリガーされるということです。したがって、get/set 処理には特定のキー値を使用することを強くお勧めします。特に、対応するキー値にはアクセス権の問題があってはなりません (上記の例の a と b など)。クラス内、クラス外、サブクラス内でエラーが発生する 開発中にさまざまな処理メソッドが予期しない戻り値を生成する可能性があり、バグが発生しやすくなります。

空のメソッドは属性のオーバーロード メソッドを呼び出すことができません。

リーリー

この例では、__set自体の戻り値は無視され、__getは呼び出されません。

さらに: プロパティのオーバーロードされたメソッドは public として宣言する必要があり、これらのメソッドを通じて静的プロパティを参照渡しすることはできません。また、これらのメソッドを静的に宣言することもできません。

もちろん、魔法の方法を使用すると、反射システムにも影響します。

http://www.bkjia.com/PHPjc/1106389.html

本当http://www.bkjia.com/PHPjc/1106389.html技術記事 PHP マジック メソッド - 属性のオーバーロード メソッド、PHP マジック属性のオーバーロード PHP には非常に魔法のメソッドがあり、これらのメソッドは通常、外部から明示的に呼び出されることはありません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。