extract

Импорт элементов массива в переменные.
Синтаксис:

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

Функция extract() используется для импортирования значений массива в строку. Эта функция берет ассоциативный массив var_array, использую ключ элемента как имя переменной, а значение элемента как значение полученной переменной. Для создания переменных из пары ключ =>
значение можно также использовать необязательные параметры extract_type и prefix.
Замечание: начиная с PHP версии 4.0.5 эта функция возвращала количество извлеченных переменных.
Функция extract() проверяет, действительно ли каждый ключ массива может быть названием переменной. Она также проверяет на наличие одинаковых названий получаемых переменных. В случае, если обнаруживаются недействительные или числовые ключи, поведение функции предопределяет параметр extract_type, который может принимать следующие значения:
EXTR_OVERWRITE

Если переменная с таким именем уже существует, то ее значение будет заменено (значение по умолчанию).

EXTR_SKIP

Если переменная с таким именем уже существует, то ее значение не будет заменено.
EXTR_PREFIX_SAME

Если переменная с таким именем уже существует, то к ее имени добавится префикс, определенный в параметре prefix.
EXTR_PREFIX_ALL

Ко всем образуемым переменным будет добавлен префикс prefix.
EXTR_PREFIX_INVALID

Только при неправильных или числовых индексах массива к имени переменной будет добавлен префикс prefix.
EXTR_IF_EXISTS

Если переменная с таким именем уже существует, то ее значение будет переписано. Иначе ничего не сделает. Это может быть полезно, если вы задали список всех переменных, а затем хотите извлечь только те переменные, которые были определены, например, из $_REQUEST. Этот флаг был добавлен в PHP 4.2.0

EXTR_PREFIX_IF_EXISTS

Создает переменные с префиксом, если такие переменные без префикса уже существовали. В любом другом случае ничего не создает. Этот флаг был добавлен в PHP 4.2.0

EXTR_REFS

Переменные создаются как ссылки. Это означает, что созданные переменные все еще ссылаются на значения соответствующих элементов массива var_array. Вы можете применять этот флаг как в одиночку, так и совместно с другими флагами. Этот флаг был добавлен в PHP 4.3.0

Пример использования функции extract():

<?php
/* Предположим, что $var_array массив,
полученный при помощи функции wddx_deserialize */

$size = "large";
$var_array = array("color" => "blue",
"size" => "medium",
"shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_sizen";
?>

Пример выведет:

blue, large, sphere, medium

Здесь переменная $size не была переписана, т.к. мы указали параметр EXTR_PREFIX_SAME.
Если указать EXTR_SKIP, тогда переменная $wddx_size даже не была бы создана. Если указать EXTR_OVERWRITE, то переменная $size имела бы значение "medium".
Если EXTR_PREFIX_ALL - то в результате были бы созданы переменные $wddx_color, $wddx_size, и $wddx_shape.
Лучше всего использовать ассоциативные массивы. Массивы с цифровыми ключами не могут быть использованы в этой функции, если установлены флаги EXTR_PREFIX_ALL или EXTR_PREFIX_INVALID.

Функция поддерживается PHP 3 >= 3.0.7, PHP 4, PHP 5