它应该是这样的:
function callcenter($func,$value,$position)
{
}
其中 $func 是要调用的函数,
$value 是 $func 的参数,
$position 代表 $value 的索引,
例如,
callcenter('func',1,2)
实际上应该调用 func(null,1)
callcenter('func',1,3)
实际上应该调用 func(null,null,1)。
说,将其他职位保留为空。
你在call_user_func_array和array_fill
<?php
function callcenter($func, $value, $position)
{
$args = array_fill(0, $position-1, null);
$args[] = $value;
call_user_func_array($func, $args);
}
function example()
{
$args = func_get_args();
var_dump($args);
}
callcenter('example',1,2);
callcenter('example',1,3);
?>
在 php 中,可以调用名称存储在变量中的函数,因此
function callcenter($func,$value,$position)
{
switch ($position)
{
case 1: $func($value); break;
case 2: $func(null, $value); break;
case 3: $func(null, null, $value); break;
}
}
可能有更好的方法来处理可变数量的参数,但这应该可以理解基本思想。