この関数は、配列から現在のシンボルテーブルに変数をインポートする ために使用されます。この関数は連想配列var_array を引数とし、そのキーを変数名、値を変数の値として処理します。 各キー/値の組に関して、extract_typeおよび prefixパラメータに基づき現在のシンボルテー ブルに変数を一つ作成します。
extract()は存在する変数との衝突を確認します。 衝突時の対処法は、extract_typeで定義されます。 これは以下の値のどれかとなります。
衝突があった場合、存在する変数が上書きされます。
衝突があった場合、存在する変数は上書きされません。
衝突があった場合、prefixを前につけた 新しい変数となります。
全ての変数の前にprefixを付けます。
extract_typeが指定されない場合、EXTR_OVERWRITE が仮定されます。
prefixは、extract_typeが EXTR_PREFIX_SAMEまたはEXTR_PREFIX_ALL の場合にのみ必要であること に注意して下さい。
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()も参照下さい。