ホームページ > php教程 > php手册 > PHP のマジックメソッド

PHP のマジックメソッド

WBOY
リリース: 2016-06-21 08:46:41
オリジナル
1042 人が閲覧しました

1. __get/__set: オブジェクトの属性を引き継ぐ
2. __call/__callStatic: PHP オブジェクト メソッドの使用を制御します
3. __toString: PHP オブジェクトを文字列
に変換します 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 = 新しいオブジェクト();

$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 までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート