| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Как обойтись без $GLOBALS и $_POST ? |
| Автор: =Женек= 10.10.2007, 18:20 |
Задать вопрос: У меня отдельный файл - functions.php. В index.php он включается через include ("functions.php"); Для всех переменных которые объявлены в index.php и использутся в functions.php вынужден писать $GLOBALS['var']. Данные переданные методом post также доступны только через $_POST['var']. Нельзя ли как-нибудь упростить, что-нибудь прописать, чтобы не добавлять к именам переменных $GLOBALS и $_POST ? |
| Автор: =Женек= 10.10.2007, 19:01 | ||||
| Пример? Ради бога - в index.php я открываю соединение с mysql, даю ему имя $connection. Когда я обращаюсь к $connection в index.php - нет проблем:
Многие функции для удобства вынесены в файл functions.php. Если в этой функции есть вызов mysql, то приходится писать
|
| Автор: Pokoinik 10.10.2007, 20:02 |
| =Женек=, как вариант в начале функции писать global $connection; |
| Автор: comcon1 10.10.2007, 20:03 |
| если вначале включаемого файла написать global $connection; то далее в этом файле просто обращаетесь к переменной $connection))) Добавлено через 44 секунды ) одновременно |
| Автор: chiffa 10.10.2007, 20:35 |
| нууууу, а почему никто не предложил отключить регистр_глобалс в пхп.ини? |
| Автор: =Женек= 10.10.2007, 22:57 | ||
| Отключить? Мож я чего не понимаю, но когда проблема появилась, я подумал что они у меня отключены и их как раз включить надо. Ан нет.
Если вначале (ставил после "<?php")- не получается. Если только ставить в начале каждой функции. Но это тоже нерационально. Еще предложения будут? |
| Автор: rMaveric 11.10.2007, 00:07 |
| =Женек=, Не используй global и масив глобальных переменных, это к Богу не ведет. Если у тебя что-то видно извне функции, а нужно чтобы появилось внутри функции, то для этих целей у функции параметры придуманы. Это раз. Для извлечения данных передаваемых методом post служит массив $_POST и его использование не предполагает ничего страшного. Это два. Но если ты не знаешь для чего используются параметры функции, и как их использовать, то можешь попробовать поюзать массив $_SESSION, он как глобальный тоже сойдет |
| Автор: Папараццы 11.10.2007, 06:51 |
| register_globals=On Надо врубить чтобы он глобальные перменные регистрировал. И не каких проблем не будет |
| Автор: rMaveric 11.10.2007, 10:46 |
| Пожалуйста не давайте рекомендаций ухудшающих код кроме как в варианте стёба. Пусть человек сразу учится писать красиво и правельно, а то потом такой код вам же править прийдется, прошу прощения а |
| Автор: =Женек= 11.10.2007, 13:05 | ||
| Папараццы, фтыкать в тему надо, я уже писал что проверял register_globals Добавлено через 13 минут и 14 секунд
Конечно. Но в основном файле я могу просто обратиться - $var. А во включаемом - не могу (((. |
| Автор: Veve 11.10.2007, 13:40 | ||||||
Ну я думаю, что тоже можешь.... Просто насколько я понял, твой файл "functions.php" состоит из множества функций:
Поэтому, если ты хочешь использовать $var во включаемом файле внутри функций, то тебе нужно поступить, как сказал rMaveric. Если ты хочешь убедится, что ты можешь использовать $var во включаемом файле, то попробуй написать к примеру
в начале включаемого файла, только не внутри функции!! |