首页 > 编程笔记 > PHP笔记 阅读:9

PHP __call()和__callStatic()的用法(新手必看)

在 PHP 类中,魔术方法是一些特殊功能的方法,其名称都使用两个下画线(_)作为前缀,比如类构造函数和析构函数、__get() 和 __set() 方法等。

本节带大家系统学习两个魔术方法,分别是 __call() 和 __callStatic() 方法:
这两个方法的参数定义相同,其中,参数一指定调用的方法名称,参数二指定一个数组,其中包含了调用方法时带入的参数。

下面的代码演示了 __call() 方法的应用:
<?php
class tTest
{
    public function __call($name, $args)
    {
        echo "调用的方法:", $name, "<br> 参数:<br>";
        foreach($args as $k=>$v)
        {
            echo "[$k] = {$v}<br>";
        }
    }
}
$obj = new tTest();
$obj->m1(1,2);
echo "<br>";
$obj->m2("a", "b", "c");
?>
运行结果为:

调用的方法:m1
参数:
0=1
1=2

调用的方法:m2
参数:
0=a
1=b
2=c


下面的代码演示了 __callStatic() 方法的应用:
<?php
class tTest
{
    public static function __callStatic($name, $args)
    {
        echo "调用的方法:", $name, "<br> 参数:<br>";
        foreach($args as $k=>$v)
        {
            echo "{$k} = {$v}<br>";
        }
    }
}
tTest::m1(1,2);
echo "<br>";
tTest::m2("a", "b", "c");
?>
运行结果为:

调用的方法:m1
参数:
0=1
1=2

调用的方法:m2
参数:
0=a
1=b
2=c

相关文章