PhpDig.net

What is PhpDig?
PhpDig is a PHP MySQL based
Web Spider & Search Engine.




extract

Name

extract — Imports variables into the local symbol table from an array.

Synopsis

int extract(array[, collision_flag][, prefix]);
array array: Array containing data to extract
int collision_flag (optional): What to do on a name collision (see description)
string prefix (optional): Prefix to give to extracted variables

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

See also compact()

Example

Example 46. 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



PHP Functions Essential Reference. Copyright © 2002 by New Riders Publishing (Authors: Zak Greant, Graeme Merrall, Torben Wilson, Brett Michlitsch). This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). The authors of this book have elected not to choose any options under the OPL. This online book was obtained from http://www.fooassociates.com/phpfer/ and is designed to provide information about the PHP programming language, focusing on PHP version 4.0.4 for the most part. The information is provided on an as-is basis, and no warranty or fitness is implied. All persons and entities shall have neither liability nor responsibility to any person or entity with respect to any loss or damage arising from the information contained in this book.

Powered by: vBulletin Version 3.0.7
Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Copyright © 2001 - 2005, ThinkDing LLC. All Rights Reserved.