![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Roland |
|
|||
|
Unregistered |
Похоже ты чего-то не понял. Покажи мне хоть одну переменную, в приведенном мной коде, которая объявляется в функции и используется на верхнем уровне. Внимательнее читать надо. А насчет справочника - специально для тебя покопался ---CUT----------------- (PHP 3>= 3.0.7, PHP 4 ) extract -- Import variables into the current symbol table from an array Description int extract ( array var_array [, int extract_type [, string prefix]]) This function is used to import variables from an array into the current symbol table. It takes an associative array var_array and treats keys as variable names and values as variable values. For each key/value pair it will create a variable in the current symbol table, subject to extract_type and prefix parameters. ---CUT----------------- Найди тут хоть одно слово global |
|||
|
||||
| arial |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 772 Регистрация: 11.3.2003 Где: Архангельская обл . Репутация: 6 Всего: 7 |
Master, где ваше обращение на ВЫ ;)
-------------------- Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская) |
|||
|
||||
| Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: 8 Всего: 10 |
Я сейчас начну грязно материться!
extract Экспорт элементов в переменные void extract (array var_array[, int extract_type [, string prefix]]) Эта функция экспортирует из ассоциативного массива var_array элементы, делая их глобальными переменными. Индекс элемента используется как имя переменной, а значение элемента - как значение переменной (глобальные переменные - это элементы "символьной таблицы" - массива глобальных переменных $GLOBALS[], и функция extract() копирует элементы массива var_array в массив $GLOBALS[]). Действие функции extract() .... дальше о наличии коллизий.
-------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
| Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: 8 Всего: 10 |
Сорри, вообче-то я на Вы с незнакомыми, но так получилось, весь день со всеми на Ты -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
| Roland |
|
||||
|
Unregistered |
Не стоит материться. В этом справочнике не совсем верный перевод. Массив $GLOBALS содержит как раз информацию о всех глобальных переменных. Когда управление передается какой либо функции, создается символьная таблица переменных только для этой функции, чтобы перевести переменную из таблицы GLOBAL в текущую нужно описать ее внутри этой функции как gloabal $... Я согласен с приведенным тобой примером, но если его немного модифицировать, вот так: <?php function test() { global $arr; extract($arr); } $arr = array('name' => 'Master', 'email' => 'closed'); test(); print_r($GLOBALS); ?> то переменны name и email будут отсутствовать в $GLOBALS, а массив $arr естественно останется на месте. P.S. Я всегда был сторонником оригинальных документаций. Оказывается не зря. |
||||
|
|||||
| Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: 8 Всего: 10 |
Ну естественно, чтобы в функции определить переменную надо её там опять глобалить. Так ведь всегда
И все-таки в справочники верный перевод. Во всяком случае он меня никогда не подводил. -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
| Roland |
|
|||
|
Unregistered |
Извини, верю тому, что вижу. Пример с функцией не соответствует русскоязычному описанию |
|||
|
||||
| Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: 8 Всего: 10 |
Я подозреваю, что этот спор не имеет истины и считаю что каждый из нас останется при своем мнении.
Пусть так и будет -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
| Roland |
|
|||
|
Unregistered |
Дык это спор не ради пафоса и не ради утверждения свойе крутизны, а ради поиска единой истины
|
|||
|
||||
| Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: 8 Всего: 10 |
Ну хорошо.
Я могу продолжить лишь тем, что с формальной точки зрения в книге написано все правильно, ведь переменные заносятся в массив $GLOBALS, так? а раз так то сформулировано все правильно. Но ты тоже имееш полное право считать себя правым потому как в оффициальной документации на http://www.php.net/extract я такого не нашел. Что тут ещё обсуждать? -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
| Roland |
|
|||
|
Unregistered |
Результат работы след. скрипта показывает наглядно, что переменные $name и $email не заносятся в массив $GLOBALS.
<?php function test() { global $arr; extract($arr); print_r($GLOBALS); } $arr = array('name' => 'Master', 'email' => 'closed'); test(); ?> |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 7 Всего: 32 |
-------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
$method = $_SERVER["REQUEST_METHOD"];
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; $HTTP_VARS = $HTTP_GET_VARS; if ($method == "POST") { $HTTP_VARS = $HTTP_POST_VARS; } else { $HTTP_VARS = $HTTP_GET_VARS; }; //$action = $HTTP_VARS["action"]; //global $HTTP_VARS; $id = $HTTP_VARS["id"]; |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |