2

PHP関数で作成された配列がいくつかあります。関数が戻ったときに、これらすべての配列を戻り値で返したいと思います。ただし、返すことができる配列は1つだけなので、次のように配列の配列を作成します。

$return_value = array($a_config_lines, $port_values, $proto_values, $dev_values, $ca_values, $key_values, $crt_values, $key_values, $group_values, $user_values, $dh_values, $server_values, $ifconfig_pool_values, $keepalive_values, $comp_values, $verb_values, $status_values, $management_values, $a_extra_config_settings);
return $return_value;

$ return_valueは配列であり、$ comp_values、$verb_valuesなどの他のすべての配列が含まれています。

関数から戻ったら、今行ったことをすぐに元に戻したいと思います。だから私は$return_valueを取り、それを古い個々の配列に分割したいのですが、今ではそれらの配列のキーは0、1、2などです...これを行う簡単な方法はありますか?

または、配列を返す前にすべてのキーを手動で設定する必要がありますか?

ありがとう!

4

1 に答える 1

0

返す配列が連想的でextract()ある場合、それを返すときにすべてのコンポーネント配列をグローバルスコープにプルバックするために使用できます。

// Define your array as an associative array, keys named the same as the component variables
return = array(
  'a_config_lines' => $a_config_lines, 
  'port_values' => $port_values, 
  'proto_values' => $proto_values, 
  // etc...
);

関数を呼び出すと:

// extract() the returned array, to dump all the vars back into global scope
$return = your_function();
extract($return);
// All arrays are now at global scope
var_dump($port_values);
var_dump($a_config_lines);

ただし、配列からきちんとアクセスできる場合は、それらをグローバルスコープに抽出して戻すことにはほとんど価値がありません。これにより、多数の新しい変数でグローバルスコープを汚染する必要がなくなります。

// Better! Just use the array.
$return = your_function();
var_dump($return['port_values']);
于 2012-08-10T02:49:22.393 に答える