まずは公式ドキュメントの説明を見てください
__set()はアクセスできないプロパティにデータを書き込むときに実行されます
__get()はアクセスできないプロパティからデータを読み込むときに利用されます
中国語に訳すとどうなるでしょうか? アクセス不能: n. 到達するのが困難; 理解できない。
コードがあって真実がある:
<?php
error_reporting (E_ALL);
class stu{
private $a ;
private $b <?php
error_reporting public $c ; public $d (E_ALL);
class ステュ{
private function __get( $name プライベート return 123; }
$a ;
private function __set( $name $value プライベート $b =
0; echo
; }
}
$s 公開new stu();
var_dump( $s $c ;
var_dump( $s
0;
var_dump( $s //ここ
private は protected public
var_dump( $s private function __get(var_dump( $s $name ) に置き換えることができます
{ $s //ここ
private は protected public
$s private function __set(
$name$s ,
$価値 )
{?>
設定された関数です" |
;
}
}
$s
=
新しい🎜 🎜stu();🎜🎜🎜🎜var_dump(🎜🎜$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; 🎜🎜//出力:
これは set 関数です🎜🎜🎜🎜$s🎜🎜->c
= 3; 🎜🎜//いいえ
出力🎜🎜🎜🎜$s🎜🎜->f
= 3; 🎜🎜//出力:
これは set 関数です🎜🎜🎜🎜?> 致命的なエラーが発生します🎜 __get メソッドがない場合、var_dump($s->e) の実行時に、属性 $e が定義されていないことを示す通知が表示されます🎜概要:🎜1. アクセスできない属性からデータを読み取る場合、__get() メソッドが呼び出されます🎜2. アクセスが困難なプロパティに値を割り当てる場合、__set() メソッドが呼び出されます🎜3.含まれるもの: (1) プライベート プロパティ、(2) 初期化なしのプロパティ🎜4. __isset () __unset() も同様です🎜
🎜
上記では、PHP のマジック メソッド __set __get メソッドを、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。 🎜
🎜
🎜