Функція extract ()

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

extract - Імпортувати змінні з масиву в поточну символьну таблицю.

Опис int extract (array var_array [, int extract_type [, string prefix]])

# 13; Ця функція використовується для імпорту змінних з масиву в поточну символьну таблицю. Вона бере асоціативний масив як параметр var_array і трактує його ключі як імена змінних і значення як значення змінних. Для кожної пари ключ / значення буде створена змінна в поточній символьної таблиці, відповідно до параметрів extract_type і prefix.

Зауваження: Починаючи з версії 4.0.5, ця функція повертає кількість витягнутих змінних.

Зауваження: EXTR_IF_EXISTS і EXTR_PREFIX_IF_EXISTS були додані у версії 4.2.0.

Зауваження: EXTR_REFS був запроваджений у версії 4.3.0.

# 13; extract () перевіряє кожен ключ на відповідність прийнятності в якості імені змінної. Ця функція також обробляє колізії імен, якщо ключ збігається з ім'ям змінної, вже існуючої в поточній символьної таблиці. Спосіб обробки неприйнятних / числових ключів і колізій імен встановлює параметр extract_type. Він може приймати одне з наступних значень:

# 13; Якщо змінна з таким ім'ям існує, вона буде перепризначено.

# 13; Якщо змінна з таким ім'ям існує, буде збережено її колишнє значення.

Якщо змінна з таким ім'ям існує, до її імені буде додано префікс, певний параметром prefix.

# 13; Додати префікс prefix до всіх імен змінних. Починаючи з PHP 4.0.5, також включає числові імена.

# 13; Додати префікс prefix тільки до неприйнятних / числовим іменах змінних. Цей прапор був доданий в PHP 4.0.5.

# 13; Перепризначити тільки змінні, вже наявні в поточній символьної таблиці, в іншому випадку нічого не робити. Дана можливість корисна для визначення списку прийнятних змінних і для вилучення тільки тих змінних, які ви вже визначили з масивів типу $ _REQUEST, наприклад. Цей прапор був доданий в PHP 4.2.0.

# 13; Створити змінні, імена яких починаються з prefix тільки якщо змінна з назвою, якому не передує prefix. визначена в поточній символьної таблиці. Цей прапор був доданий в PHP 4.2.0.

# 13; Витягти змінні як посилання. Це означає, що значення таких змінних будуть все ще посилатися на значення масиву var_array. Ви можете використовувати цей прапор окремо або комбінувати його з іншими, використовуючи OR. Цей прапор був доданий в PHP 4.3.0.

# 13; Якщо extract_type не визначений, він трактується як EXTR_OVERWRITE.

# 13; Зверніть увагу, що prefix має значення, тільки якщо extract_type встановлений в EXTR_PREFIX_SAME. EXTR_PREFIX_ALL. EXTR_PREFIX_INVALID або EXTR_PREFIX_IF_EXISTS. Якщо в результаті додавання префікса, що не буде отримано припустиме ім'я для змінної, вона не буде імпортована в поточну символьну таблицю.

# 13; extract () повертає кількість змінних, успішно імпортованих в символьну таблицю.

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

# 13; Функцію extract () також можна використовувати для імпорту в поточну символьну таблицю змінних, що містяться в асоціативному масиві, повернений функцією wddx_deserialize ().

Приклад 1. Приклад використання extract ()

/ * Припустимо, що $ 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
";

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

Схожі статті