П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3525 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6122 раз(а).

Учебник HTML.
Просмотров 3276 раз(а).

Руководство по PHP5.
Просмотров 5499 раз(а).

Хостинг через призму DNS.
Просмотров 4151 раз(а).

Подборка текстов стандартных документов.
Просмотров 55774 раз(а).

Учебник PHP - Самоучитель
Просмотров 3093 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5767 раз(а).

Внешние атаки...
Просмотров 3843 раз(а).

Учебник PHP.
Просмотров 2826 раз(а).

SSI в примерах.
Просмотров 37463 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство по PHP
Пред. След.

extract

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

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

Описание

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

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

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

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

Замечание: EXTR_REFS был добавлен в версии 4.3.0.

extract() проверяет каждый ключ на соответствие приемлемости в качестве имени переменной. Эта функция также обрабатывает коллизии имён, если ключ совпадает с именем переменной, уже существующей в текущей символьной таблице. Способ обработки неприемлемых/числовых ключей и коллизий имён устанавливает параметр 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

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

EXTR_REFS

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

Если extract_type не определён, он трактуется как EXTR_OVERWRITE.

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

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

Внимание

Не используйте функцию extract() для непроверенных данных, таких как пользовательский ввод ($_GET, ...). Если вы сделаете это, например, для того, что бы временно запустить старый код, использующий register_globals, используйте соответствующий флаг extract_type для того, что бы не переназначить уже установленные переменные, такой как EXTR_SKIP и удостоверьтесь, что вы извлекаете содержимое массивов $_SERVER, $_SESSION, $_COOKIE, $_POST и $_GET в этом порядке.

Функцию 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");

echo
"$color, $size, $shape, $wddx_size
"
;

?>

Результат выполнения данного примера:

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().



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru