PHP のマジック メソッド
1. __get/__set: オブジェクトの属性を引き継ぐ
2. __call/__callStatic: PHP オブジェクト メソッドの使用を制御する
3. PHP オブジェクトをstring
4. __invoke: php オブジェクトを関数として実行するときにこのメソッドを呼び出します
<code>class Object{ protected $array = array(); function __set($key,$value) { var_dump(__METHOD__); $this->array[$key] = $value; } function __get($key) { var_dump(__METHOD__); return $this->array[$key]; } function __call($func,$param) { var_dump($func,$param); return "magic mathod __call"; } static function __callStatic($func,$param) { var_dump($func,$param); return "magic mathod __callStatic"; } function __toString() { return "__toString"; } function __invoke($param) { var_dump($param); return "invoke"; }}</code>
$Obj = new Object();
$Obj ->title = "Hello";//オブジェクトに存在しないプロパティに値を割り当てる場合、__set メソッドが自動的に呼び出されます。
echo $Obj->title; //オブジェクトに存在しない属性を読み取ると、自動的に __get メソッドが呼び出されます。
echo $Obj->test("hello","123"); // メソッドを呼び出すとき存在しないオブジェクトの場合、__call メソッドが自動的に呼び出されます。
echo $Obj::test1("hello1","1234") //存在しないオブジェクトの静的メソッドが呼び出された場合, __callStatic メソッドが自動的に呼び出されます
echo $Obj;//オブジェクトが直接出力される場合 (オブジェクトを直接出力できないため)、__toString メソッドが自動的に呼び出され、オブジェクトを文字列に変換します
echo $Obj(“hello”);//オブジェクトが関数として使用される場合、__invoke メソッドが自動的に呼び出されます
著作権表示: この記事はブログです。これはオリジナルの記事であり、ブロガーの許可なしに転載することはできません。