uznay-chto-hochesh.narod.ru

-сайт для интересующихся людей

Учебник - справочник по PHP.

Здесь Вы найдете что хотели

Меню сайта
Главная
Введение
Справочник языка
Возможности РНР
Функции (справочник)
Расширение РНР 4.0
F.A.Q. частые вопросы
Приложения
Алфавитный указатель
Друзья сайта
сделай сайт сам! пособие по html
изучение html и web-дизайна для новичков
Бесплатная отправка смс на все операторы
Реклама
 
Назад Вперёд

extract

(PHP 3>= 3.0.7, PHP 4)

extract - импортирует переменные в текущую таблицу символов из массива.

Описание

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

Эта функция используется для импорта переменных из массива в текущую таблицу символов. Она принимает ассоциативный массив var_array и рассматривает ключи как имена переменных, а значения - как значения. Для каждой пары key/value она создаёт переменную в текущей таблице символов - субъект параметров extract_type и prefix.

Примечание: начиная с версии 4.0.5, эта функция возвращает количество извлечённых переменных.

Примечание: EXTR_IF_EXISTS и EXTR_PREFIX_IF_EXISTS были введены в версии 4.2.0.

extract() проверяет каждый ключ/key - образует ли он верное имя переменной, а также смотрит, нет ли конфликтов с существующими именами в таблице символов. Способ, которым обрабатываются неверные/числовые ключи и конфликты, определяется в extract_type. Это может быть одно из следующих значений:

EXTR_OVERWRITE

Если есть конфликт, существующая переменная перезаписывается.

EXTR_SKIP

Если есть конфликт, существующая переменная не перезаписывается.

EXTR_PREFIX_SAME

Если есть конфликт, вставить префикс prefix перед именем переменной.

EXTR_PREFIX_ALL

Вставить префикс prefix перед всеми именами переменных. Начиная с версии PHP 4.0.5, это могут быть также и числа.

EXTR_PREFIX_INVALID

Вводить префикс prefix только перед неправильными/числовыми именами переменных. Этот флаг был добавлен в PHP 4.0.5.

EXTR_IF_EXISTS

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

EXTR_PREFIX_IF_EXISTS

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

Если extract_type не специфицирован, принимается, что он будет EXTR_OVERWRITE.

Заметьте, что prefix необходим только тогда, когда extract_type равен EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID или EXTR_PREFIX_IF_EXISTS. Если результат с префиксом не является правильным именем переменной, он не импортируется в таблицу символов.

extract() возвращает количество переменных, успешно импортированных в таблицу символов.

Можно использовать extract для импорта в таблицу символов переменных, содержащихся в ассоциативном массиве, возвращаемом функцией wddx_deserialize().

Пример 1. extract()
<?php

/* Предположим, что $var_array это массив, возвращаемый из wddx_deserialize */

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

print "$color, $size, $shape, $wddx_size\n";

?>

На выходе будет:
blue, large, sphere, medium

Переменная $size не была перезаписана, поскольку мы специфицировали EXTR_PREFIX_SAME, что даёт в результате создание $wddx_size. Если EXTR_SKIP был специфицирован, то $wddx_size не могла бы быть создана. EXTR_OVERWRITE мог бы дать для $size значение "medium", а EXTR_PREFIX_ALL привело бы к созданию новых переменных $wddx_color, $wddx_size и $wddx_shape.

Вы обязаны использовать ассоциативный массив, так как массив, индексированный числами, не даст нужных результатов, если только вы не используете EXTR_PREFIX_ALL или EXTR_PREFIX_INVALID.

См. также compact().


НазадОглавление Вперёд
endВверх in_array

Хостинг от uCoz