![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
animegirl |
|
|||
![]() Незнайка на Марсе ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 24.7.2011 Репутация: нет Всего: нет |
Ясно, значит $_GLOBALS
-------------------- Скажи миру - НЯ! |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
animegirl, а чем тебе не понравился мой класс? Это и есть "глобальная переменная"
![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
animegirl |
|
|||
![]() Незнайка на Марсе ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 24.7.2011 Репутация: нет Всего: нет |
Gold Dragon, Я пока, что до классов не доросла, пытаюсь избегать этого типа программирования, пока не прижмёт, а нето будет как всегда, сначала не понимаешь и злишься, а потом нравится и убиваешь уйму времени, чтоб всё переделать на новый лад.
-------------------- Скажи миру - НЯ! |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
animegirl, ну в данной ситуации, тебе просто нужно его подключить в самом начале и ты получишь возможность управлять своей "глобальной переменной". Примеры как использовать я показал. А про Глобальные переменные забудь.. Получила данные из глобальной, присвоила их переменной и уже дальше работай со своими переменными. И использование global в функциях это тоже зло.. Не ленись передавать функциям параметры и возвращать их.
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
А сейчас будет не так? ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
мне больше нравится использовать возможности 5.4 и без использования классов
для версии ниже 5.4 последние два способа будут не доступны (GL()['var1'], GL()['array']['key']) -------------------- Amazing ![]() |
|||
|
||||
IgorIV |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
Я так думаю, что надо привести пример функции которая показывает " список всего, что надо". Может ошибка в подходе? А вот про модуль не понял |
|||
|
||||
animegirl |
|
|||
![]() Незнайка на Марсе ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 24.7.2011 Репутация: нет Всего: нет |
Ситуация, такова, у меня на каждую функцию проекта, свой ПХП файл.
Есть 2-3 файла инклуда с основными функциями и вариаблами. Функции очень сильно перемешаны друг с другом, каждый раз для вызова, чего-то нового, нужно передавать кучу вариабл,. Если я хочу добавить новую вариаблу, то мне приходится в каждом из 100+ ПХП файлов добавить эту вариаблу к вызовам функции, хотя её спокойно, можно создать в обработки другой функции, и оставить в глобальных. Я сейчас перешла на $GLOBALS, минут за 30 перевела все скрипты на новый способ общения, и в принципе очень даже рада. Вносить изменения стало намного легче. По поводу модуля. Модуль упомянутый выше runkit писался девушкой для PHP, но она перестала его обновлять, так как её утянули работать в фэйсбук, последния версия модуля датируется 2006ым годом, и он не работает с PHP 5.2+ :( -------------------- Скажи миру - НЯ! |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
![]() ![]() ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Это указывает на ошибку в разработке самих функций. Выделение кода в функцию производится по двум признакам - повторяемость и специализация. Т.е. выделяемый код должен выполнять некие специализированные действия и/или повторятся неоднократно Таким образом в функцию совсем не нужно передавать огромную кучу переменных (в силу того что она выполняет не слишком сложные действия) Функция даже с 5тью обязательными параметрами достаточно сложна. Если у вас есть большее количество параметров, то скорее всего они поддаются группировке, а значит вы можете передавать несколько объектов или массивов вместо сотен параметров. Это сообщение отредактировал(а) Fortop - 19.3.2013, 17:08 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
IgorIV |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
animegirl, как вы там пишете?
![]() ![]() |
|||
|
||||
animegirl |
|
||||
![]() Незнайка на Марсе ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 24.7.2011 Репутация: нет Всего: нет |
IgorIV,
script.php
stats.inc
Это часть кода, часть функции write_log, вариабла $GLOBALS['run_time'] ещё используется там не однократно. Это один из примеров, не хочется без надобности постить сюда кучу своего кода ![]() -------------------- Скажи миру - НЯ! |
||||
|
|||||
animegirl |
|
|||
![]() Незнайка на Марсе ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 24.7.2011 Репутация: нет Всего: нет |
Другой пример (без кода).
У меня используются несколько разных соединений с базой, отправка запросов делается через 2 разные функции, каждая из которых: 1. Проверяет существует ли уже соединение для её типа, если нет создаёт 2. Отправляет sql запрос по правильному каналу, если запрос не проходит создаёт репорт ошибки в файл Если оставить вариант, с передачей переменных, то их надо сначала создавать, потом передавать, а так функции становятся более автономными, что уменьшает возможность ошибки при неправильном описании их вызова. Меньше шансов на ошибку -> меньше потраченного времени, на её поиск. -------------------- Скажи миру - НЯ! |
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
меняем на такой код в write_log();
можно даже на такое
Что мы имеем? Теперь нам неважно установлена ли $GLOBALS['script_name'] в вызывающем скрипте и правильно ли она установлена. Мы сами можем узнать откуда нас - write_log() вызвали. -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
animegirl |
|
||||||||
![]() Незнайка на Марсе ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 24.7.2011 Репутация: нет Всего: нет |
Fortop,
выдаёт
выдаёт
-------------------- Скажи миру - НЯ! |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |