![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
sidd |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 7.10.2006 Где: Киев Репутация: нет Всего: нет |
Изначально в функции недоступны глобальные переменные. Решить эту проблему можно функцией global, но это не удобно, так как придется объявлять все необходимые мне переменные.
Можно ли как-то сделать, чтоб в функции сразу были доступны для использования все глобальные переменные? |
|||
|
||||
flashaa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
$globals[''] - берите значение нужной переменной. Вообще область видимости не зря придумана. Попытка обходить её таким образом говорит о том, что решение наверняка не совсем политкорректное. |
|||
|
||||
sidd |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 7.10.2006 Где: Киев Репутация: нет Всего: нет |
flashaa, благодарю.
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Что значит не доступны? Глобальные переменные на то и глобальные, что доступны везде. Другое дело, что изменяя их вы не изменяете их глобально, для этого global нужен.
|
|||
|
||||
sidd |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 7.10.2006 Где: Киев Репутация: нет Всего: нет |
Ясно. Я неправильно выразился ![]() |
|||
|
||||
vasac |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
||||
|
||||
SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
Мануал, увы, иного мнения...
flashaa, про регистр только не забывайте ;) -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
SelenIT, нету у меня сервака проверить, может быть и проглючил.. Привык, что в Сях - так, как написал я. В ПХП я клобальные вообще не использую...
|
|||
|
||||
flashaa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
В PHP у каждой ф-ции СВОЯ область видимости.
Поэтому переменные, объявленные выше, в самой ф-ции недоступны. Для доступа к ним нужен global, который означает вот что:
Есть набор суперглобальныз переменных, которые видны отовсюду- $_REQUEST, $_SESSION, $GLOBALS и тп. Это сообщение отредактировал(а) flashaa - 22.12.2007, 17:42 |
|||
|
||||
madFobos |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 7.12.2005 Репутация: 1 Всего: 3 |
Если в функции нужно использовать слишком много глобальных переменных, то эта функция не есть правильная, из нее нужно создавать класс и т.п. Как бы сам PHP говорит, что global по сути не лучший способ и его нужно при возможности обходить.
Однако если все же нужно в функции использовать множество глобальных переменных без их объявления, то пожалуйста: $GLOBALS['var_name'] Еще как вариант, если переменные не изменяются нигде, то можно их обявлять как константы (они тоже имеют суперглобальную область видимости, т.е. везде) Это сообщение отредактировал(а) madFobos - 27.12.2007, 20:28 |
|||
|
||||
FractalizeR |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 27.12.2007 Где: Россия/Москва Репутация: 2 Всего: 4 |
Подводя итог беседы ![]() Они все доступны через super-global массив $GLOBALS Это сообщение отредактировал(а) FractalizeR - 27.12.2007, 20:24 -------------------- Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |