2016-11-20 1 views
0

を修正:$データはカンマ区切りの変数の任意の量であることができるPHP:両方で機能を呼び出す方法は、私のような関数を呼び出す必要がある引数とコンマ区切りの引数の多く

function something($argument1, $argument2, $data) 

: 1,2,3,4

ので、例えば、私は呼び出します。

function something ('blue', 'green', 1,2,3) 

または

function something ('red', 'black', 1,2,3,4,5,6,7,8,9) 

ellipsisキーワード(...)を調べましたが、私は2つの静的引数($ argument1と$ argument2)でこれをどのように実装できるかわかりません。

私の直感は、関数を呼び出して配列を関数に送る前に、カンマを区切って配列にすることでしょうか?

ありがとうございます!

+0

可能な重複がJavaScript関数への引数の可変数を送信することが可能です?](http://stackoverflow.com/questions/1959040/is-it-possible-to-send-a-variable-number-of-arguments-to-a-javascript-function) –

+0

あなたは確かに第3引数として「stuff」配列。または、可変引数番号を持つ関数のアプローチを使用します。実際にはいくつでも引数を使うことができるので、2つの必須引数が確実に引き渡されるように独自の手段を実装する必要があります。 – arkascha

+0

未知の量のパラメータが関数に渡される場合は、配列を使用します。 – Kitson88

答えて

0

splat演算子を使用する前に、必要な引数を含めることができます。スプラット演算子によって取得されたすべての引数は配列で使用できます。例えば、

function splat_example($arg_1, $arg_2, ...$data_list) { 
    echo $arg_1 . "\r\n"; 
    echo $arg_2 . "\r\n"; 
    foreach ($data_list as $data) { 
     echo $data . "\r\n"; 
    } 
} 

ので、以下、

splat_example('red', 'blue', 1, 2, 3, 4); 

red 
blue 
1 
2 
3 
4 

あなたはカンマ区切りとして三番目のパラメータを渡すことができ、それはここhttp://sandbox.onlinephpfunctions.com/code/36d991aeb4321faf8400d0f6fb017efc50ebe567

1

あなたは何をしようとしているのかよく分かりませんが、たくさんの引数を持つ関数が必要な場合や、最初の2つの引数が固定であることを知っているので、php func_get_args()関数に渡されます。

0

作業を参照してください、でつながります文字列。 とし、コンマで爆発させて配列に変換することができます。

関数何か(「青」、「緑」、「1,2,3」)の{

}

+0

その場合は配列を渡して、 '' 1,2,3''を '[1,2,3]'に置き換え、 'explode()'を使って保存してください。 – Steve

関連する問題