将数组中的变量作为函数参数传递?

时间:2011-01-21 00:04:24

标签: php class

我有一个与此类似的功能:

function load_class($name){
  require_once('classes/'.$name.'.php');
  return new $name();
}

我想要做的就是修改它以便我可以做这样的事情

function load_class($name, $vars = array()){
  require_once('classes/'.$name.'.php');
  return new $name($array[0], $array[1]);
}

它的一般要点是。

我希望能够传入一个值数组,并将其用作类的参数。

我不想传入实际的数组。

这可能吗?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

如果您尝试加载类,则可以使用__autoload函数

更多信息here

答案 2 :(得分:0)

您可以使用call_user_func_array以这种方式调用函数,但对于类构造函数,您应该使用ReflectionClass::newInstanceArgs

class MyClass {
   function __construct($x, $y, $z) { }
}


$class = new ReflectionClass("MyClass");

$params = array(1, 2, 3);

// just like "$instance = new MyClass(1,2,3);"
$instance = $class->newInstanceArgs($params);

您的代码可能如下所示:

function load_class($name, $vars = array()){
  require_once('classes/'.$name.'.php');
  $class = new ReflectionClass($name);
  return $class->newInstanceArgs($vars);
}