PHP и GLOBALS @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 10 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Заголовок сообщения: PHP и GLOBALS
Сообщение Добавлено: 19 Январь 2004, 10:51:36 
Перехожу на PHP и с ужасом вижу, что глобальные переменные которые мы привыклы видеть внутри процедур (С, PERL) теперь не видны, ладно делаем extract или global и видим их и там... но вот наоборот

Код:
function main(){
   $ar=array("name"=>"MpaK");
    extract ($ar);
//   $GLOBALS['name']='MpaKus Izvrashenus';
}

main();
print "[ $name ]";


но вот extract внутри функции работает не верно, а хотелось бы не по одной внутренней переменной глобализировать, а скопом.
Помогите, как сделать?

пробовал $GLOBALS=compact(…) Но тоже ноль результата :(

_________________
:: metal kick ass ::
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 19 Январь 2004, 11:17:03 
MpaK999, читаем про область видимости переменных - http://www.php.net/manual/ru/language.v … .scope.php
если тебе надо внутри функции менять "внешние" (относительно функции) переменные используй либо определение переменной внутри функции как глобальной (global $name), либо через массив $GLOBALS - http://www.php.net/manual/ru/reserved.v … es.globals .

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 19 Январь 2004, 11:35:34 
Long, а extract неужели не глобализует переменные из асс. массива?
а нельзя как нибудь упростить обращение к $GLOBALS ?

оффтопик:
ну, вот, увижу того, кто сказал, что пхп лучше перла - убью. ждем перл6

_________________
:: metal kick ass ::
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 19 Январь 2004, 12:08:19 
MpaK999, ты внимательно прочитал о видимости переменных? на уровне функции переменные свои, и так сделано специально, чтобы случайно не изменить внешние переменные. если ты хочешь в функции работать с глобальными переменными скажи это парсеру прямо. я не очень понимаю что ты хочешь сделать, но вот этот код работает так, как ты предполагаешь
Код:
function main(){
    $ar=array("name"=>"MpaK");
    foreach($ar as $k=>$v) $GLOBALS[$k]=$v;
}

main();
print "[ $name ]";

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 19 Январь 2004, 12:13:35 
Long, ок, спасибо... просто перловые-привычки не дают покоя :)

_________________
:: metal kick ass ::
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Re: PHP и GLOBALS
Сообщение Добавлено: 19 Январь 2004, 12:58:46 

MpaK999 писал(а):
но вот extract внутри функции работает не верно, а хотелось бы не по одной внутренней переменной глобализировать, а скопом.



Ты не должен этого хотеть.
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 19 Январь 2004, 13:46:20 
Crazy, такой вот я нарушитель правил :laugh:

_________________
:: metal kick ass ::
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 19 Январь 2004, 15:15:53 
MpaK999, мое дело предупредить. Сам факт возникновения такого желания есть признак того, что пишется бред.

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 19 Январь 2004, 15:48:30 
Crazy, вывод, что все что пишется на С или Perl - то это бред???

_________________
:: metal kick ass ::
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 19 Январь 2004, 17:51:19 
MpaK999, пишется на любом языке согласно стандартам языка. в пхп область видимости переменных, определенных в функции - сама функция.

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 10 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100