我有一个格式如下的字符串:
function1!!param1||ignore!!param2&&function2!!param1||ignore!!param2||ignore!!param3
它拥有的函数数量是无限的(它们用 && 分隔)
从上面的字符串生成的基本函数调用是:
function1($param1,$param2);
第二个:
function2($param1,$param2,$param3);
参数的数量是无限的。(它们不被称为函数和参数,这只是一个例子)
很高兴回答任何问题!!我已经尝试过按 && 爆炸然后 !! 但我不太清楚如何使用动态参数调用动态函数。
5.2的解决方案:
function function1( $a1, $a2 ) {
echo $a1 . $a2;
}
function function2( $a1, $a2, $a3 ) {
echo " ".$a1 . $a2 . $a3;
}
function explodemap($val) {
$explode = explode( "!!", $val );
return $explode[1];
}
$functions = explode( "&&", 'function1!!param1||ignore!!param2&&function2!!param1||ignore!!param2||ignore!!param3' );
foreach( $functions as $function ) {
$split = explode( "||", $function );
$weird_excalmation_split = explode("!!", $split[0] );
$params = array_slice( $split, 1 );
$params = array_map( "explodemap", $params );
$fn_name = $weird_excalmation_split[0];
array_unshift( $params, $weird_excalmation_split[1] );
call_user_func_array( $fn_name, $params );
}