Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединение $_GET['variable'] и $_POST['variable, как? 
:(
    Опции темы
Roland
Дата 3.6.2003, 18:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Master @ 3.6.2003, 13:55)
Ты сам понял что написал?
Ты что считаеш что если в функции определить переменную глобальной её можно увидеть вне функции?

Это была цитата из справочника!!!

Похоже ты чего-то не понял. Покажи мне хоть одну переменную, в приведенном мной коде,
которая объявляется в функции и используется на верхнем уровне.
Внимательнее читать надо.
А насчет справочника - специально для тебя покопался smile.gif


---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 smile.gif


  Вверх
arial
Дата 3.6.2003, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Master, где ваше обращение на ВЫ ;)


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Master
Дата 4.6.2003, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 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() .... дальше о наличии коллизий.

Код
<?php
$arr = array('name' => 'Master', 'email' => 'closed');
extract($arr);
print_r($GLOBALS);
?>



--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Master
Дата 4.6.2003, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



Цитата(arial @ 3.6.2003, 22:06)
Master, где ваше обращение на ВЫ ;)

Сорри, вообче-то я на Вы с незнакомыми, но так получилось, весь день со всеми на Ты smile.gif


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Roland
Дата 4.6.2003, 11:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Master @ 4.6.2003, 09:43)
Я сейчас начну грязно материться!

extract
Экспорт элементов в переменные
void extract (array var_array[, int extract_type [, string prefix]])
Эта функция экспортирует из ассоциативного массива var_array элементы, делая их глобальными переменными. Индекс элемента используется как имя переменной, а значение элемента - как значение переменной (глобальные переменные - это элементы "символьной таблицы" - массива глобальных переменных $GLOBALS[], и функция extract() копирует элементы массива var_array в массив $GLOBALS[]).
Действие функции extract() .... дальше о наличии коллизий.

Код
<?php
$arr = array('name' => 'Master', 'email' => 'closed');
extract($arr);
print_r($GLOBALS);
?>

Не стоит материться. В этом справочнике не совсем верный перевод. smile.gif Если обратишь внимание на ангийский оригинал, то там написано current symbol table а не global symbol table.
Массив $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
Дата 4.6.2003, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



Ну естественно, чтобы в функции определить переменную надо её там опять глобалить. Так ведь всегда smile.gif

И все-таки в справочники верный перевод. Во всяком случае он меня никогда не подводил.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Roland
Дата 4.6.2003, 14:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Master @ 4.6.2003, 12:51)
И все-таки в справочники верный перевод. Во всяком случае он меня никогда не подводил.

Извини, верю тому, что вижу. Пример с функцией не соответствует русскоязычному описанию smile.gif
  Вверх
Master
Дата 5.6.2003, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



Я подозреваю, что этот спор не имеет истины и считаю что каждый из нас останется при своем мнении.
Пусть так и будет smile.gif


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Roland
Дата 5.6.2003, 10:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Дык это спор не ради пафоса и не ради утверждения свойе крутизны, а ради поиска единой истины smile.gif Я думаю эти мессаги интересно будет людям почитать. Предлагаю продолжить до установления единого мнения.
  Вверх
Master
Дата 5.6.2003, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



Ну хорошо.
Я могу продолжить лишь тем, что с формальной точки зрения в книге написано все правильно, ведь переменные заносятся в массив $GLOBALS, так? а раз так то сформулировано все правильно.

Но ты тоже имееш полное право считать себя правым потому как в оффициальной документации на http://www.php.net/extract я такого не нашел.

Что тут ещё обсуждать?


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Roland
Дата 7.6.2003, 11:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Результат работы след. скрипта показывает наглядно, что переменные $name и $email не заносятся в массив $GLOBALS.


<?php

function test()
{
global $arr;
extract($arr);
print_r($GLOBALS);
}

$arr = array('name' => 'Master', 'email' => 'closed');
test();


?>
  Вверх
MuToGeN
Дата 9.6.2003, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 7
Всего: 32



Цитата
$PT = &$HTTP_POST_VARS;
А дальше, что?
Просто писанины меньше.


--------------------
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!
PM MAIL ICQ   Вверх
Unregistered
Дата 18.6.2003, 13:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.