-1

私はそのような配列である変数のセットを作成する関数を作成しようとしています

function breakDownPOSTArray($count, $fields) {
    $repeat = 1;
    $num = 0;   
    while ($repeat <= $count) {
        $a = "array" . $repeat;
        $$a = array_slice($_POST, $num, $fields);
        $repeat ++;
        $num += 4;
    }

関数の外でこれらの変数を使用できるようにしたい。現状では、変数を関数の外側で宣言してグローバルにプルしていますが、それはオブジェクトを打ち負かしているように感じ、繰り返しすぎています。

関数の外で変数を宣言せずに、私が望むものを達成するためのより良い方法はありますか?

4

4 に答える 4

1

できることは、配列とextract()関数の戻り値を返すことです。

function breakDownPOSTArray($count, $fields) {
    $repeat = 1;
    $num = 0;
    $array = array();
    while ($repeat <= $count) {
        $array["array" . $repeat] = array_slice($_POST, $num, $fields);
        $repeat++;
        $num += 4;
    }
    return $array;
}

// To call it:
extract(breakDownPOSTArray(..., ...));
于 2013-04-18T17:47:22.470 に答える
0

あなたが探しているものを達成するための正当な理由があると仮定すると...

変化する

$a = "array" . $repeat;
$$a = array_slice($_POST, $num, $fields);

$GLOBALS["array" . $repeat] = array_slice($_POST, $num, $fields);

...複雑なデザインに私のように感じますが、確かにそれを言うのに十分なコードを見ることができません.

于 2013-04-18T17:50:47.153 に答える