I l@ve RuBoard Previous Section Next Section

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 
    I l@ve RuBoard Previous Section Next Section