-1

它应该是这样的:

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)。

说,将其他职位保留为空。

4

2 回答 2

2

你在call_user_func_arrayarray_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);
?>
于 2009-09-23T05:24:44.193 回答
0

在 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;
  }
}

可能有更好的方法来处理可变数量的参数,但这应该可以理解基本思想。

于 2009-09-23T05:22:09.613 回答