Blogger Information
Blog 61
fans 0
comment 0
visits 62929
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
魔术方法__call与__callStatic的使用
Pengsir
Original
671 people have browsed it

代码

<?php
/**
 * __call($method,$arg):调用类中不存在的动态方法的时候,自动调用
 * __callStatic($method,$arg):调用类中不存在的静态方法的时候,自动调用
 * cdll_user_func_array()实行跨类执行一些方法
 * 1.重点call_user_func_array([对象,类方法],参数)这个方法;用这个方法跳转到Demo1类中,取值
 * 2.重点call_user_func_array([类名,类方法],参数)这个是静态方法;用这个方法跳转到Demo1类中,取值
 */
include 'text.php';
class Demo
{
    public function __call($name, $argm)
    {
        return call_user_func_array([(new Text),$name],$argm);
    }
    public static function __callStatic($name, $argm)
    {
        return call_user_func_array(['Text',$name],$argm);
    }
}
$obj =new Demo;
echo $obj->hello('是非静态方法吗?','是的');
echo '<hr>';
echo Demo::get('我是静态方法','请用类名调用');

要跳转页面的代码:

<?php
class Text
{
    public function hello($arg1,$arg2)
    {
        return '我才是真正的非静态的方法:'.'参数是:'.$arg1.$arg2;
    }
    public static function get($arg1,$arg2)
    {
        return '我是真正的静态方法:'.'参数是:'.$arg1.$arg2;
    }
}

运行结果图:

魔术方法__call与__callStatic效果图.png


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post