PHPの裏技方法

WBOY
リリース: 2016-06-13 12:22:30
オリジナル
836 人が閲覧しました

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 メソッドが自動的に呼び出されます

著作権表示: この記事はブログです。これはオリジナルの記事であり、ブロガーの許可なしに転載することはできません。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート