Дипломные работы, курсовые проекты на заказ, контрольные работы на заказ

 
Начертательная геометрия Практикум по решению задач Геометрическое черчение Инженерная графика ЕСКД Кратные интегралы Математический анализ Матрицы Пределы Производные Векторная алгебра Интегральное исчисление ТФКП Ядерная физика Электростатика Магнетизм Оптика Информационные технологии
Учебник РНР
НазадВперёд

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