質問

Pythonは" *"を提供しますタプルのリストをアンパックし、引数として関数に渡すための演算子:

args = [3, 6]
range(*args)            # call with arguments unpacked from a list

これは次と同等です:

range(3, 6)

PHPでこれを実現する方法があるかどうかは誰にもわかりませんか? 「PHP Unpack」のバリエーションのいくつかのグーグルすぐには何も見つかりませんでした。おそらくPHPでは何か違うものと呼ばれていますか?

役に立ちましたか?

解決

call_user_func_array() を使用して、これを実現できます。

call_user_func_array(" range&quot ;, $ args); を使用して、例を使用します。

他のヒント

php5.6 ... 演算子が追加されました。これを使用すると、この簡単な代替手段として call_user_func_array()を取り除くことができます。たとえば、関数を使用する

function add($a, $b){
  return $a + $b;
}

and your array $ list = [4、6]; (php5.5以降では、この方法で配列を宣言できます)。 ...

で関数を呼び出すことができます

echo add(... $ list);

call_user_func_arrayを使用する必要があります

call_user_func_array(array(CLASS, METHOD), array(arg1, arg2, ....))

http://www.php.net/call_user_func_array

またはリフレクションAPIを使用 http://www.php.net/oop5.reflection

特定のシナリオでは、PHPで可能な unpacking の使用を検討する場合があります。これは、Pythonと同様の方法です。

list($min, $max) = [3, 6];
range($min, $max);

これが、少なくともこの答えにたどり着いた方法です。 Google検索: PHP引数のアンパック

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top