| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Вызов функции с большим числом аргументов |
| Автор: GAM 7.6.2008, 07:54 |
| В коде присутствует вызов функции с 15-20 аргументами. Можно ли это оптимизировать, да и надо ли? |
| Автор: Feldmarschall 7.6.2008, 08:00 |
| можно. врядли. |
| Автор: skyboy 7.6.2008, 08:31 |
| оптимизировать можно много чего. вообще. но в данном случае, видимо, возможно "оптимизировать" только синтаксис вызова. возможно, было бы лучше сгруппировать аргументы в один/нескольлко ассоциативных массивов. сгруппировать по смыслу; по тому, как соотносятся аргументы в рамках твоей модели. в конечном итоге, подобный подход("somefunc(array('name'=> 'haha', 'count'=> 5)/*1*/, array('name'=> 'hoho', 'count'=> 15)/*2*/)" нагяднее "somefunc('haha',5,'hoho',15)") не оптимизирует что либо, но, в общем случае, повышает читаемость и понимаемость программы, что ускорит разработку(кто из вас обращается к справке, чтоб узнать, в каком порядке в strstr передаются аргументы? я вот - почти каждый рах :() и ускорит отладку(если в подпрограмме встречается $first_account['name'], проще понять, с чем работаем в противовес "$first_account_name" или безликому "$name_41"). В любом случае, тут совет такой же, как и с наименованием переменных: структурируй параметры так, чтоб упростить понимание работы функции себе и другим. |
| Автор: GAM 7.6.2008, 08:45 |
| Да, надо будет группировать, а то такая путанница происходит, что сложно визуально понять. Спасибо. |
| Автор: skyboy 7.6.2008, 10:49 |
т.е. вопрос все-таки был о форматировании кода, а не об оптимизации? |
| Автор: GAM 7.6.2008, 11:57 |
| Ну так если собрать кучу аргументов и разбить их по массивам, то это тоже оптимизация, в своём роде. Просто другого пути именно оптимизации вызова функции не вижу. Буду пробовать через массив. И, скорее всего, многомерный, чтобы в 1 массиве все перематры передать. Я только начинаю вникать, поэтому могу некоторые термины не верно истолковывать, извините, если запутал 8) |
| Автор: Feldmarschall 7.6.2008, 12:06 |
| можно ещё совсем все переделать. чтобы таких функций и вовсе не требовалось. |