ホームページ  >  記事  >  php教程  >  PHP マジック メソッド __get() および __set() の使用方法の詳細な説明

PHP マジック メソッド __get() および __set() の使用方法の詳細な説明

WBOY
WBOYオリジナル
2016-06-13 11:57:581205ブラウズ

公式 PHP ドキュメントの説明を見てみましょう。
__set() は、アクセスできないプロパティにデータを書き込むときに実行されます。
__get() は、アクセスできないプロパティからデータを読み取るために使用されます。 >

中国語に翻訳するにはどうすればよいですか?
アクセス不能: n. 到達するのが困難。

コードと真実があります:

コードをコピー コードは次のとおりです:

< ;?php
error_reporting(E_ALL);
private $a;
public $d = 0; 🎜>//ここで private は protected public に置き換えることができます
private function __get($name) {
return
}

//ここで private は protected public に置き換えることもできます
プライベート関数 __set ($name, $value) {
echo "これは set 関数です";
}
}
$s = new stu(); s->a) ; //出力: 123
var_dump($s->b); //出力: 123
var_dump($s->c); >var_dump($s->d); //出力: 0
var_dump($s->e) //出力: 123
$s->a = 3;これは set 関数
$s->c = 3; //出力なし
$s->f = 3; //これは set 関数
?>



結果分析:

__get メソッドがない場合、var_dump($s->a) var_dump($s->b) を実行すると致命的エラーが発生します。 error
_ _get メソッドがない場合、var_dump($s->e) を実行すると、属性 $e が定義されていないという通知が表示されます


概要:
1. アクセスできない属性からの読み取り データを取得する場合、__get() メソッドが呼び出されます。2. アクセスが難しい属性に値を割り当てる場合、__set() メソッドが呼び出されます。アクセス不能には、(1) プライベート属性、(2) 初期化されていない属性が含まれます。 __isset() __unset() も同様です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。