Php 将数组输出到函数内的字符串

Php 将数组输出到函数内的字符串,php,arrays,string,function,Php,Arrays,String,Function,我有一个基于用户输入运行PHP字符串函数的方法。我正在收集用户表单中的所有参数,并将其应用到构建助手并返回数据的方法中。但是,我需要能够在函数构建中将每个数组节点/段作为单独的字符串输出 因此,用户数据收集如下: 2个参数,1个功能,1个主题 参数:“”和“\u1” 功能:“str_replace” 主题:“本测试” 参数收集为一个数组,其结果如下: $parameters = "'".implode("','",$parameters)."'"; $data = $myFunction($p

我有一个基于用户输入运行PHP字符串函数的方法。我正在收集用户表单中的所有参数,并将其应用到构建助手并返回数据的方法中。但是,我需要能够在函数构建中将每个数组节点/段作为单独的字符串输出

因此,用户数据收集如下:

2个参数,1个功能,1个主题

参数:“”和“\u1” 功能:“str_replace” 主题:“本测试”

参数收集为一个数组,其结果如下:

$parameters = "'".implode("','",$parameters)."'";
$data = $myFunction($parameters, $subject);
return $data;
$function   = "str_replace";
$parameters = [ " " , "_", "" ];  // array with ALL default parameters
$replace    = [ 2 ];              // array with index of customizable parameters
$subject    = [ "This Test" ];    // array with custom parameters

foreach( $subject as $key => $val )
{
    $parameters[ $replace[ $key ] ] = $val;
}
echo call_user_func_array( $function, $parameters );

$parameters(“,”)
是否希望变量/数组作为字符串

var_export($data, true)

它有一个内置函数来执行此操作:。此函数要求将所需函数名作为第一个参数,并将包含所有参数的数组作为第二个参数。因此,您必须将
$subject
附加到
$parameters
并以以下方式调用它:

$function   = "str_replace";
$subject    = "This Test";
$parameters = [ " " , "_" ];

$parameters[] = $subject;
echo call_user_func_array( $function, $parameters );
$subject    = [ 'Basic', 4 ]; //11
将输出:

此测试
我假设您的代码要加载多个函数:主要问题是将函数参数分为两类(subject和parameters),那么连接它的标准是什么?在所提供的情况下很简单,但是如果“subject”不是最后一个函数参数,您如何继续

如果有一个函数有两个或多个可变参数

也许你可以这样做:

$parameters = "'".implode("','",$parameters)."'";
$data = $myFunction($parameters, $subject);
return $data;
$function   = "str_replace";
$parameters = [ " " , "_", "" ];  // array with ALL default parameters
$replace    = [ 2 ];              // array with index of customizable parameters
$subject    = [ "This Test" ];    // array with custom parameters

foreach( $subject as $key => $val )
{
    $parameters[ $replace[ $key ] ] = $val;
}
echo call_user_func_array( $function, $parameters );
因此,拥有这组参数:

$function   = "strpos";
$parameters = [ "My Basical Basic Text" , '', 0 ];
$replace    = [ 1, 2 ];

$subject    = [ 'Basic' ];
调用函数时,您将获得:“3”(Basical的字符串位置),同时以这种方式修改
$subject

$function   = "str_replace";
$subject    = "This Test";
$parameters = [ " " , "_" ];

$parameters[] = $subject;
echo call_user_func_array( $function, $parameters );
$subject    = [ 'Basic', 4 ]; //11
您将获得“11”(字符串位置为“Basic”)

还请注意,
call\u user\u func\u array()
不可调用


  • 阅读更多关于
  • 阅读更多关于

我理解这一点,但如何在函数调用中实现这一点?那就是我挂断电话的地方。我更新了OP以显示问题的更好示例…谢谢!这让我到达了我需要的地方。
$subject    = [ 'Basic', 4 ]; //11