代码
<?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;
}
}运行结果图:

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号