作者:付帅sz_702 | 来源:互联网 | 2018-05-22 08:43
看下面的代码{代码...}__callStatic实现静态方法调用实例方法,但是$arguments变量是一个数组,在不改变func方法(参数可能不固定)的前提下如何实现对实例方法传参.
看下面的代码
php
class XXOO
{
private static $instance;
public function func($arg1, $arg2, $arg3, $arg4)
{
}
public static function __callStatic($method, $arguments)
{
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance->$method($arguments);
}
}
XXOO::func('arg', 'arg2', array('name'), 'sf');
__callStatic
实现静态方法调用实例方法,但是$arguments
变量是一个数组,在不改变func
方法(参数可能不固定)的前提下如何实现对实例方法传参.
回复内容:
看下面的代码
php
class XXOO
{
private static $instance;
public function func($arg1, $arg2, $arg3, $arg4)
{
}
public static function __callStatic($method, $arguments)
{
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance->$method($arguments);
}
}
XXOO::func('arg', 'arg2', array('name'), 'sf');
__callStatic
实现静态方法调用实例方法,但是$arguments
变量是一个数组,在不改变func
方法(参数可能不固定)的前提下如何实现对实例方法传参.
call_user_func_array([self::$instance, $method], $arguments);