Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将参数从一个函数传递到另一个函数_Php_Function_Arguments - Fatal编程技术网

Php 将参数从一个函数传递到另一个函数

Php 将参数从一个函数传递到另一个函数,php,function,arguments,Php,Function,Arguments,我有类似的东西 function f1($name = ''){ f2("prefix_{$name}", $args); } f1()函数的调用方式如下: f1('name',$var1,$var2,$var3) 如何将这些变量传递给其中的f2(),与传递给f1()的方式相同 因此,用$args代替f2(“前缀{$name}”) 它应该像f2(“前缀{$name}”,$var1、$var2、$var3) 并不是说我无法控制f2函数:(常规函数get_args()将不考虑任何默

我有类似的东西

  function f1($name = ''){
    f2("prefix_{$name}", $args);
  }
f1()函数的调用方式如下:

f1('name',$var1,$var2,$var3)

如何将这些变量传递给其中的f2(),与传递给f1()的方式相同

因此,用$args代替
f2(“前缀{$name}”)

它应该像
f2(“前缀{$name}”,$var1、$var2、$var3)

并不是说我无法控制f2函数:(

常规函数get_args()将不考虑任何默认参数,因此需要执行以下操作:

function func_get_default_args($a) {
    $args = array_slice(func_get_args(), 1);
    return array_merge($args, array_slice($a, sizeof($args)));
}

function f1($name = ''){
    call_user_func_array('f2', func_get_default_args(func_get_args(), $name));
}
编辑:
取代

解释什么

function f1( $name = '' )
{
    // get all arguments to this function
    $args = func_get_args();
    // prefix the first arguments with some prefix
    $args[ 0 ] = 'prefix_' . $name;
    // call the second function with the $args array as its arguments
    call_user_func_array( 'f2', $args );
}
$args[ 0 ] = 'prefix_' . $args[ 0 ];
$args[ 0 ] = 'prefix_' . $name;