この関数は、配列から現在のシンボルテーブルに変数をインポートする
ために使用されます。この関数は連想配列
var_array
を引数とし、そのキーを変数名、値を変数の値として処理します。 各キー/値の組に関して、
extract_type
および
prefix
パラメータに基づき現在のシンボルテー ブルに変数を一つ作成します。
注意 バージョン4.0.5以降、この関数は展開された変数の数を返します。
extract()
は、各キーについて変数名として有効で あるかどうか、そして、シンボルテーブルの既存の変数と衝突しないか
どうかを確認します。無効または数値キーおよび衝突に関する対処法は、
extract_type
で定義されます。これは以下の値 のどれかとなります。
衝突があった場合、存在する変数が上書きされます。
衝突があった場合、存在する変数は上書きされません。
衝突があった場合、
prefix
を前につけた 新しい変数となります。
全ての変数の前に
prefix
を付けます。PHP 4.0.5以降、接頭辞を数値とすることも可能です。
無効または数値の変数名のみに接頭辞
prefix
を付ける。このフラグは、PHP 4.0.5 で追加されました。
extract_type
が指定されない場合、EXTR_OVERWRITE が仮定されます。
prefix
は、
extract_type
がEXTR_PREFIX_SAME、 EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID
の場合にのみ必要であることに 注意して下さい。接頭辞を付けた変数名が有効な変数名でない場合、こ
の変数はシンボルテーブルにインポートされません。
extract()
は、各キーが有効な変数名からなるかど うかを確認し、有効な変数名である場合のみインポート処理を行います。
extractの使用例としては、シンボルテーブルに
wddx_deserialize()
から返された連想配列を インポートすることが考えられます。
上記の例の結果は以下となります。
blue, large, sphere, medium |
EXTR_PREFIX_SAMEを指定したため、
$size
は上書き されず、
$wddx_size
が作成されます。 EXTR_SKIPが指定された場合、$wddx_sizeは作成されません。EXTR_OVERWRITE
の場合は、
$size
の値は"medium"となります。 EXTR_PREFIX_ALLの場合は新規の変数
$wddx_color
,
$wddx_size
,
$wddx_shape
が作成されます。
連想配列を使用する必要があり、数値添字の配列には結果は出力されま せん。
compact()
も参照下さい。