PHP Manual
Prev |  | Next

# extract

extract -- Import variables into the symbol table from an array

## Description

`void extract`(array var_array, int [extract_type] , string [prefix] );

This function is used to import variables from an array into the current symbol table. It takes associative array `var_array` and treats keys as variable names and values as variable values. For each key/value pair it will create a variable in the current symbol table, subject to `extract_type` and `prefix` parameters.

extract() checks for colissions with existing variables. The way collisions are treated is determined by `extract_type`. It can be one of the following values:

EXTR_OVERWRITE

  If there is a collision, overwrite the existing variable.

EXTR_SKIP

  If there is a collision, don't overwrite the existing variable.

EXTR_PREFIX_SAME

  If there is a collision, prefix the new variable with `prefix`.

EXTR_PREFIX_ALL

  Prefix all variables with `prefix`.

If `extract_type` is not specified, it is assumed to be EXTR_OVERWRITE.

Note that `prefix` is only required if `extract_type` is EXTR_PREFIX_SAME or EXTR_PREFIX_ALL.

extract() checks each key to see if it constitues a valid variable name, and if it does only then does it proceed to import it.

A possible use for extract is to import into symbol table variables contained in an associative array returned by wddx_deserialize().

Example 1. Extract() example

      1
      2 <php?
      3
      4 /* Suppose that $var_array is an array returned from
      5    wddx_deserialize */
      6
      7 $size = "large";
      8 $var_array = array ("color" => "blue",
      9                     "size"  => "medium",
     10                     "shape" => "sphere");
     11 extract ($var_array, EXTR_PREFIX_SAME, "wddx");
     12
     13 print "$color, $size, $shape, $wddx_size\n";
     14
     15 ?>
     16

The above example will produce:

      1
      2 blue, large, sphere, medium
      3

The $size wasn't overwritten, becaus we specified EXTR_PREFIX_SAME, which resulted in $wddx_size being created. If EXTR_SKIP was specified, then $wddx_size wouldn't even have been created. EXTR_OVERWRITE would have cause $size to have value "medium", and EXTR_PREFIX_ALL would result in new variables being named $wddx_color, $wddx_size, and $wddx_shape.

Prev | Home | Next
end | Up | in_array