PHPで引数の配列をアンパックする
-
08-07-2019 - |
質問
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引数のアンパック
所属していません StackOverflow