|
|
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
Значит стоит такая задача. приходят куча параметров, в зависимости от них надо выполнять дейсвия. Вот пока типичный пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. как избежать громадных CASE'ов при этой проверке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2008, 11:41 |
|
||
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
ScareCrowЗначит стоит такая задача. приходят куча параметров, в зависимости от них надо выполнять дейсвия. Вот пока типичный пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Я насколько вижу у тебя некоторые case практически равны include_once + расшерение php, значит сделать case для тех где требуется особая обработка. А на defaut поставить Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2008, 11:54 |
|
||
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
авторinclude_once(...$arr[2]+".php"); это понятно. но это просто как пример. меня интересует вопрос кто как делает обработку вот таких вещей.. когда пришел параметр с кучей возможных значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2008, 11:55 |
|
||
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
Chain of Responsibility ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2008, 12:11 |
|
||
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
ScareCrow пишет: > Значит стоит такая задача. приходят куча параметров, в зависимости от > них надо выполнять дейсвия. Вот пока типичный пример: Поищи на RSDN.ru, в С++ кажется (не в прикладном С++). Обсуждали примерно месяц - два назад Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2008, 20:23 |
|
||
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторinclude_once(...$arr[2]+".php"); это понятно. но это просто как пример. меня интересует вопрос кто как делает обработку вот таких вещей.. когда пришел параметр с кучей возможных значений. хм.. ну например создать массив порядковых значений и в цикле перебирать их по номеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 12:40 |
|
||
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
ScareCrow ... и так еще 2 тыщи строчек. как избежать громадных CASE'ов при этой проверке? Попробуй стельнуть из пушки по мелким птичкам. Примени шаблон "Repace Contitional with Polymorphism" (c). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 15:14 |
|
||
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
есть в пхп указатели на функцию в каком-либо виде? если есть, то можно слепить ассоциативный массив ["команда", "функция"]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 15:19 |
|
||
|
как избежать громадных CASE'ов
|
|||
|---|---|---|---|
|
#18+
Вариант 1: использать break; Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. А так по идеи таких нереальных кейсов в пару тышь штук не должно быть... Пробуйте все раскидать в разные файлы. К примеру у меня на сайте всего 1 страничка каторая выводит абсолютно все: Код: plaintext 1. 2. 3. 4. 5. 6. Вот и case во много раз упростился. А если бы делал все в одном файле то давно уже бы запутался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 16:39 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1344750]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
9ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 529ms |

| 0 / 0 |
