まず、公式 PHP ドキュメントの説明を見てみましょう:
__set() はアクセスできないプロパティにデータを書き込むときに実行されます
__get() はアクセスできないプロパティからデータを読み取るために利用されます
中国語での翻訳方法。 ?
アクセス不能: n. 到達するのが困難。
コードがあり、真実があります:
コードをコピーします コードは次のとおりです:
error_reporting(E_ALL);
class stu{
private $a; b = 0;
public $c;
public $d = 0;
//ここでの private は protected public
private function __get($name) {
return 123;
//ここでは、保護された public
private function __set($name, $value) {
echo "This is set function"
}
}
$s = new stu($s->) で置き換えることもできます。 a); //出力: 123
var_dump($s->b); //出力: 123
var_dump($s->c); //出力: null
var_dump($s->d); ; //出力: 0
var_dump($ s->e); //出力: 123
$s->a = 3; //これは関数
$s->c = 3; //出力なし
$s-> f = 3; //出力: これは set 関数
結果の分析:
__get メソッドがない場合は、var_dump($s-> ;a) var_dump($s->b ) 致命的なエラーが発生します
__get メソッドがない場合、var_dump($s->e) を実行すると、属性 $e が定義されていないことが通知されます
概要:
1. アクセスできない属性から読み取る データを取得するときに __get() メソッドが呼び出されます
2. アクセスが難しい属性に値を割り当てるときに __set() メソッドが呼び出されます
3.アクセスには次のものが含まれます: (1) プライベート属性、(2) 初期化されていない属性
4. __isset() __unset() も同様です。
http://www.bkjia.com/PHPjc/325964.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/325964.html技術記事まずは公式のPHPドキュメントの説明を見てみましょう: __set() はアクセスできないプロパティにデータを書き込むときに実行されます. __get() はアクセスできないプロパティからデータを読み取るために利用されます...。