extract
int extract(array array, [int collision_flag], [string prefix])
|
array
|
Array containing data to extract
|
|
collision_flag
|
What to do on a name collision (see description)
|
|
prefix
|
Prefix to give to extracted variables
|
Imports variables into the local symbol table from an array.
Returns:
Void in versions of PHP prior to 4.0.5; in 4.0.5 and later versions, returns the number of elements extracted
Description:
This function iterates through the array given by array
and, for each element, creates a variable in the local scope that's named by the key of the element and whose value is the value of the element.
There are a couple of issues of which you should be aware. First, if a variable in the local scope has the same name as one of the keys of array
, a name collision has occurred and you must decide how to handle it. Second, it's possible for array keys to be values that are not valid as PHP variable names; for instance, numeric indices or values beginning with digits. You can pass collision_flag
to specify what to do in these cases. collision_flag
must be one of the following named constants:
|
EXTR_OVERWRITE
|
On name collisions, the existing variable is overwritten with the newly-extracted variable. This is the default behavior.
|
|
EXTR_PREFIX_ALL
|
Prepend the value given by prefix
to all extracted variable names. Requires that prefix
be given. As of PHP 4.0.5, this also applies to numeric keys.
|
|
EXTR_PREFIX_INVALID
|
Prepend the value given by prefix
to all extracted variable names for which the array key is either a number or otherwise not a valid PHP variable name. Requires that prefix
be given. This option is only available in PHP 4.0.5 and up.
|
|
EXTR_PREFIX_SAME
|
On name collisions, prepend the value given by prefix
to the newly extracted variable's name.
|
|
EXTR_PREFIX_SKIP
|
On name collisions, skip the current element and do not attempt to extract it. Nothing is overwritten.
|
When prefix
is prepended to a variable name, PHP inserts an underscore between prefix
and the variable name.
Version:
PHP 3 since 3.0.7, PHP 4
See also:
compact()
Example:
Extract variables into the local scope
$foo = 'original';
$array = array('foo' => 'new', 'bar' => 'newbar');
extract($array);
echo "After extract(): \$foo == $foo; \$bar == $bar\n";
/* Cleanup for testing. */
unset($foo);
unset($bar);
$foo = 'original';
$array = array('foo' => 'new', 'bar' => 'newbar');
extract($array, EXTR_PREFIX_SAME, 'extr');
echo "After extract(): \$foo == $foo; \$bar == $bar; \$extr_foo ==
$extr_foo \n";
Output:
After extract(): $foo == new; $bar == newbar
After extract(): $foo == original; $bar == newbar; $extr_foo == new
|