![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Мне нужно использовать в функции достаточное количество внешних данных.
Как мне это лучше сделать: 1. передавать значения в функцию? (есть ли ограничения на количество передаваемых переменных?) 2. создать массив, в который загонять переменные по необходимости и передавать одну переменную-массив? 3. объявлять и использовать в самой функции глобаньные переменные? 4. иное? подскажите как лучше и правильнее. -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Я в таких случаях выбираю просто.
1. Предположим есть шаблон отображения информации о файле. Т.е. информация из одной темы и я передаю один массив. 2. Если информация разнородная, к примеру в классе для работы с Базой, я отправляю сами переменные, чтобы в функции можно было лучше понять что и где, да и не генерировать лишний раз не нужгный массив. 3.
Неа.. Использовал только для объектов и то сейчас перешел к 1 объекту.
http://php.rinet.ru/manual/ru/function.func-get-args.php |
||||
|
|||||
| Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 22 Всего: 53 |
смотря какие данные, если например конфиги, то можно передать путь к файлу с конфигами
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Мне тогда лучше класс сделать?
вот пример, все данные строковые. Вообще, это данные для отображения в контексте
4-й вариант - всё равно передавать нужно много, а писать такую длинную строку не хочется Добавлено @ 14:37 в других функциях данных ещё больше... Это в основном окончания к словам, например, "1 заведение", 2 заведения, т.е. в зависимости от результата. И таких данных много -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
||||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
это не совсем то, мне нужны переменные, функции не войдут
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Red Dragon применяя ту функцию ты получишь массив из аргуметов, не прописывая их в ().
Да, это не очень удобно, но не заменимо при динамическом кол-ве параметром. В противном случае - ассоциативный массив. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
наверное в данном случае это лучший вариант -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
в общем поднимаю тему, опять актуальна.
Сейчас я передаю в функции исключительно один массим, да и вообще у меня отдельные переменные свидины до минимума. Мне так удобнее обрабатывать. НО(!) сейчас есть глобальные переменные, ну например что-то такое $baza = new CDatabase(_DB, _HOST, _USER , _PASW); вопрос: как лучше? function qq($baza){ //..... } или function qq(){ GLOBAL $baza; //..... } приветствуется обоснование, опыт, предпочтения -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
Gold Dragon, лично я предпочитаю и считаю правильным так:
-------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: 6 Всего: 8 |
mishaSL,в php5 нет нужды ставить & - все и так передается по ссылке
|
|||
|
||||
| sTa1kEr |
|
||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Я бы в таком случае использовал статическое поле или синглтон класс.
Не все, только объекты и ресурсы. |
||||
|
|||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: нет Всего: 70 |
||||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Gold Dragon, с инверсией зависимостей между классами знаком?
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
я вообще с классами не дружу. Сколько раз пытался строить проекты, не выходит.. Использую только отдельные функции. Пользуюсь только готовыми классами, типа работа с почтой, с базой и т.п.
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| WIPS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 22.5.2006 Где: Украина, Киев Репутация: 1 Всего: 8 |
В любом случае я бы не стал использовать "GLOBAL"
--------------------
Автопроизводители, машины, марки, модели! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
а обоснования... Зачем-то она есть
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Golda |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 20 Всего: 42 |
Сложнее отследить, что происходит с глобальной переменной, если код злоупотребляет использованием GLOBAL. Неизвестно, что за функция и как изменила Вашу переменную. Это же ссылка. Поэтому локализовывать проблемы сложнее. Более того. Иногда использование глобальных переменных запутывает ситуацию. Например, поскольку при записи
фактически создается ссылка, при
будет уничтожена только эта ссылка, а не целевая переменная -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
||||||
|
|||||||
![]()
|
| Правила форума "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. |