extract 配列からシンボルテーブルに変数をインポートする &reftitle.description; intextract arrayarray intflagsEXTR_OVERWRITE stringprefix"" 配列から シンボルテーブル に変数をインポートします。 各キーについて変数名として有効であるかどうか、 そして、シンボルテーブルの既存の変数と衝突しないかどうかを確認します。 ユーザーの入力、例えば $_GET$_FILES のような、 信頼できないデータに extract を使用しないでください。 &reftitle.parameters; array この関数は連想配列 var_array を引数とし、そのキーを変数名、値を変数の値として処理します。 各キー/値の組に関して、flags および prefix パラメータに基づき、 現在のシンボルテーブルに変数を一つ作成します。 連想配列を使用する必要があります。EXTR_PREFIX_ALL または EXTR_PREFIX_INVALID を使用しない限り、 数値添字の配列には結果は出力されません。 flags 無効または数値キーおよび衝突に関する対処法は、 flags で定義されます。 これは以下の値のどれかとなります。 EXTR_OVERWRITE 衝突があった場合、存在する変数が上書きされます。 EXTR_SKIP 衝突があった場合、存在する変数は上書きされません。 EXTR_PREFIX_SAME 衝突があった場合、prefix を前につけた新しい変数となります。 EXTR_PREFIX_ALL 全ての変数の前に prefix を付けます。 EXTR_PREFIX_INVALID 無効または数値の変数名のみに接頭辞 prefix を付けます。 EXTR_IF_EXISTS 現在のシンボルテーブルに既に存在する場合にのみ上書きします。 例えば $_REQUEST からあなたが定義した変数のみを展開し 有効な変数としたいような場合に有用です。 EXTR_PREFIX_IF_EXISTS 同じ変数だが接頭辞をつけていないバージョンの変数が 現在のシンボルテーブルに存在する場合にのみ 変数を生成します。 EXTR_REFS 変数を参照として展開します。 これはインポート済みの変数が、 array パラメータの値に常に参照付けられることを意味します。 このフラグを単独で使用するか、 あるいはflagsと和算することにより、 他のフラグとそれを組み合わせることができます。 flags が指定されない場合、 EXTR_OVERWRITE とみなされます。 prefix prefix は、 flagsEXTR_PREFIX_SAMEEXTR_PREFIX_ALLEXTR_PREFIX_INVALID あるいは EXTR_PREFIX_IF_EXISTS の場合にのみ必要であることに注意してください。 接頭辞を付けた変数名が有効な変数名でない場合、 この変数はシンボルテーブルにインポートされません。接頭辞は、 アンダースコア文字で配列のキーから自動的に分割されます。 &reftitle.returnvalues; シンボルテーブルにインポートした変数の数を返します。 &reftitle.examples; <function>extract</function> の例 "blue", "size" => "medium", "shape" => "sphere" ); extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; ?> ]]> &example.outputs; EXTR_PREFIX_SAME を指定したため、$size は上書きされず、$wddx_size が作成されます。 EXTR_SKIP が指定された場合、$wddx_size は作成されません。 EXTR_OVERWRITE の場合は、$size の値は "medium" となります。 EXTR_PREFIX_ALL の場合は新規の変数 $wddx_color, $wddx_size, $wddx_shape が作成されます。 &reftitle.notes; extract をユーザー入力 ($_GET$_FILES など) のような信頼できないデータについて使用しないでください。 もし行う場合、 EXTR_SKIP のような flags の値が上書きされていないことを確認してください。そして &php.ini; の variables_order で定義されたものと同じ順で展開すべきであることに留意してください。 &reftitle.seealso; compact list