次のようにフォーマットされた文字列があります。
function1!!param1||ignore!!param2&&function2!!param1||ignore!!param2||ignore!!param3
持つ関数の数は無制限です (&& で分割されます)。
上記の文字列から生成される基本的な関数呼び出しは次のとおりです。
function1($param1,$param2);
そして2番目のもの:
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 );
}