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