2

これを行う方法が必要だと確信しています:

このような関数を呼び出すと...

callFunction("var1","var2","var3");

関数「callFunction」は、これらの変数を配列に変換します。つまり:

$array[0] = "var1";
$array[1] = "var2";
$array[2] = "var3";

関数を呼び出すときにリストされている変数の数に関係なく、この配列を生成したいのですが、これは可能ですか?

4

3 に答える 3

8

次の操作を簡単に実行できます。

function callFunction() {
    $arr = func_get_args();
    // Do something with all the arguments
    // e.g. $arr[0], ...
}

func_get_args関数に渡されたすべてのパラメーターを返します。関数ヘッダーでそれらを指定する必要さえありません。

func_num_args関数に渡される引数の数が得られます。simple ができることを考えると、なぜそのようなものが存在するのかは完全にはわかりませんcount(func_get_args())が、Cで存在するため(実際に必要な場合)、存在すると思います。

この種の機能を別の言語でもう一度探す場合は、通常、Variadic Function、またはすぐにGoogleで検索する必要がある場合は「varargs」と呼ばれます:)

于 2012-10-01T09:25:08.673 に答える
0

func_get_args()その関数から戻るだけです:

function callFunction(){
    return func_get_args();
}

$array = callFunction("var1","var2","var3","var4","var5");
var_dump($array);

/*array(5) {
  [0]=>
  string(4) "var1"
  [1]=>
  string(4) "var2"
  [2]=>
  string(4) "var3"
  [3]=>
  string(4) "var4"
  [4]=>
  string(4) "var5"
}*/
于 2012-10-01T09:25:35.197 に答える
0

このように関数を呼び出します。

callFunction( array("var1", "var2", "var3", "var4", "var5") );

このように関数を作成します。

function callFunction($array)
{
    //here you can acces your array. no matter how many variables are listed when calling the function.
    print_r($array);
}
于 2012-10-01T10:09:20.103 に答える