ホームページ >バックエンド開発 >PHPチュートリアル >PHPの__callStatic()メソッドの詳しい説明

PHPの__callStatic()メソッドの詳しい説明

PHPz
PHPzオリジナル
2016-06-13 12:02:127839ブラウズ

PHP では、2 つのアンダースコア __ で始まるメソッドをマジック メソッドと呼びます。これらのメソッドは PHP で重要な役割を果たします。

関連: 「PHP の __construct()、クラス コンストラクターの詳しい説明」 「PHP の __destruct()、クラス デストラクター 》《 PHPの__call()メソッドの詳しい説明

静的モードでアクセスできないメソッドを呼び出すときに呼び出されるPHPの__callStatic()

こちらメソッドは、__callStatic() が静的メソッド用に用意されていないことを除いて、上記の __call() 関数と同じです。

次のコードを見てください:

<?php
class Person
{
    function say()
    {
        echo "Hello, world!<br>";
    }
    /**
     * 声明此方法用来处理调用对象中不存在的方法
     */
    public static function __callStatic($funName, $arguments)
    {
        echo "你所调用的静态方法:" . $funName . "(参数:" ;  // 输出调用不存在的方法名
        print_r($arguments); // 输出调用不存在的方法时的参数列表
        echo ")不存在!<br>\n"; // 结束换行
    }
}
$Person = new Person();
$Person::run("teacher"); // 调用对象中不存在的方法,则自动调用了对象中的__call()方法
$Person::eat("小明", "苹果");
$Person->say();

実行結果は次のとおりです:

你所调用的静态方法:run(参数:Array ( [0] => teacher ) )不存在!
你所调用的静态方法:eat(参数:Array ( [0] => 小明 [1] => 苹果 ) )不存在!
Hello, world!
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。