2017-12-11 7 views
-1

私はこのような何かを呼び出すしたいと思います:PHPのパス昏睡区切られた文字列は、

<?php 
    function returner($par1,$par2){ 
     var_dump($par1); 
     var_dump($par2); 
     return false; 
    } 

    $func_name = 'returner'; 
    $args = array('arg1','arg2'); 
    $func_name('"'.implode('","',$args).'"'); 
?> 

をしかし、問題はPHPが送信する、である単一の引数として$func_name()へ:

$arg1'"arg1","arg2"'であり、$arg2は定義されていません。

returner()機能を変更せずに、正しく動作させるにはどうすればよいですか(つまり、パラメータは別に送信されます)。

あなたが call_ser_func_arrayを使用
+1

を参照してください「しかし、問題は、その

$func_name(...$args); 

PHPはそれを$ func_name()への単一の引数として送信します "_ - それが実際にあなたを驚かせた場合、実際の問題はむしろPHP /関数の一般的なパラメータの絶対的な基礎に関する知識が不足している... – CBroe

+0

@CBroe - それでは –

+0

で技術開発のディレクターとして自分自身を宣言している誰かから、うわー:-)そんなに大嫌い...その質問は私のアカウントから私の友人から聞かれました。私は彼を助ける時間がなかった。しかし、私は '... $ args'の解決策が好きです。私は彼の選んだ答えをPHP 5.6+の解決策に変更しました。 –

答えて

2

あなたはPHP 5.6を使用しているので、あなたがsplat演算子を活用することができます:_ https://eval.in/916622

関連する問題