【原创】PHP之__call() 与 __callStatic() 函数的区别

blogdaren 2019-07-24 抢沙发 211人次

两者区别:

__call()          当调用的实例方法不存在或权限不足时,会自动调用 __call() 方法。
__callStatic()  当调用的静态方法不存在或权限不足时,会自动调用 __callStatic() 方法。

演示代码:

<?php
class User
{
    public function __call($func, $args)
    {
        pprint("u called the instance method \$user->$func which non exist, so __call() is trigged", $func, $args);
    }

    public static function __callStatic($func, $args)
    {   
        pprint("u called the static method User::$func which non exist, so __callStatic() is trigged", $func, $args);
    }   
}

$user = new User();
$user->get(1, 2);
User::post(3, 4);

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:【原创】PHP之__call() 与 __callStatic() 函数的区别

发表评论:

您的昵称:
电子邮件:
个人主页: