extract Переводит элементы массива в переменные текущей таблицы символов &reftitle.description; intextract arrayarray intflagsEXTR_OVERWRITE stringprefix"" Функция импортирует переменные в текущую таблицу символов на основе элементов массива. Функция проверяет каждый ключ на соответствие правилам именования переменных и обрабатывает конфликты имён с переменными текущей таблицы символов. Функцией extract опасно извлекать переменные из ненадёжных данных наподобие суперглобальных переменных $_GET или $_FILES, которые содержат пользовательский ввод. &reftitle.parameters; array Ассоциативный массив. Функция интерпретирует ключи массива как названия переменных, а значения элементов — как значения переменных. На основе каждой пары «ключ — значение» функция создаст или обновит переменную в текущей таблице символов с учётом значений параметров flags и prefix. Функция ожидает ассоциативный массив; импорт переменных на основе элементов индексного массива выполняется только при передаче флага EXTR_PREFIX_ALL или EXTR_PREFIX_INVALID. flags Параметр flags определяет способ обработки недопустимых или числовых ключей и коллизий. Параметр принимает следующие значения: EXTR_OVERWRITE При коллизии перезаписывать переменную в текущей таблице символов. EXTR_SKIP При коллизии не перезаписывать переменную в текущей таблице символов. EXTR_PREFIX_SAME При коллизии добавлять к названию переменной префикс prefix. EXTR_PREFIX_ALL Добавлять префикс prefix к названию каждой переменной. EXTR_PREFIX_INVALID Добавлять префикс prefix только к недопустимым или числовым названиям переменных. EXTR_IF_EXISTS Не создавать новые переменные, а только перезаписывать в текущей таблице символов. Флаг полезен для определения «белого списка» переменных, чтобы затем извлечь только предопределённые переменные, например, из суперглобального массива $_REQUEST. EXTR_PREFIX_IF_EXISTS Создать только префикс-версии переменных, если переменная без префикса уже содержится в текущей таблице символов. EXTR_REFS Извлечь переменные как ссылки: переменные импортируются как ссылки на значения элементов массива array. Флаг работает отдельно или в комбинации с другими флагами параметра flags при объединении через побитовое ИЛИ. Значение параметра flags по умолчанию равно EXTR_OVERWRITE. prefix Обратите внимание, параметр prefix обязателен только при установке для параметра flags флагов EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID или EXTR_PREFIX_IF_EXISTS. Переменная не импортируется в текущую таблицу символов, если после добавления префикса создаётся недопустимое название переменной. Между префиксом и ключом массива автоматически вставляется символ подчёркивания: prefix_key. &reftitle.returnvalues; Функция возвращает количество переменных, затронутых в таблице символов. &reftitle.examples; Пример импорта переменных функцией <function>extract</function> "blue", "size" => "medium", "shape" => "sphere" ); extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; ]]> &example.outputs; Переменная $size не перезаписалась из-за установки флага EXTR_PREFIX_SAME, поэтому функция создала переменную $wddx_size. При установке флага EXTR_SKIP функция не создала бы переменную $wddx_size. С флагом EXTR_OVERWRITE переменная $size получила бы значение "medium", а при установке флага EXTR_PREFIX_ALL функция создала бы переменные $wddx_color, $wddx_size и $wddx_shape. &reftitle.notes; Функцией extract опасно извлекать переменные из ненадёжных данных наподобие суперглобальных переменных $_GET или $_FILES, которые содержат пользовательский ввод. При вынужденном извлечении ненадёжных данных в параметр flags передают константу EXTR_SKIP или другой флаг, который запрещает перезапись текущих значений, и извлекают переменные с учётом порядка значений в директиве variables_order файла &php.ini;. &reftitle.seealso; compact list