| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > Оптимизация кода |
| Автор: diam 8.7.2006, 10:35 | ||
| Здравствуйте. Хочу предложить взгляд задачу по оптимизации кода php. Задача. Рассматриваем некий кусок кода в программе. В этом коде есть два действия, которые нужно выполнить обязательно. Одно действие в начале рассматриваемого куска кода, другое действие - в конце этого же кода. Между описанными двумя действиями располагаются несколько других действий, которые выполняются последовательно. При этом если одно из действий выполняется с ошибками, то остальные действия даже не выполняются. Задача: написать код, который будет работать по описанной схеме. Предлагаемое решение.
Предложите другие решения. |
| Автор: beroal 8.7.2006, 12:23 |
| Например, вместо break использовать return. Ещё PHP5/Exceptions. |
| Автор: ZlojEzh 8.7.2006, 13:10 | ||||
return прервет выполнение не только цикла, но и всего скрипта (либо инклудящегося файла) а вообще особой необходимости в оптимизации не вижу можно убрать временные переменные и писать сразу
если действий всегда одинаковое количество (притом небольшое), можно использовать вложенные if'ы
|
| Автор: DemoCode 8.7.2006, 13:18 | ||
А если так:
|
| Автор: beroal 9.7.2006, 09:09 | ||||
А вы подумайте немного. Надо действия записать в тело функции, тогда всё будет в порядке. Добавлено @ 09:10
А зачем они нужны? |
| Автор: Sardar 9.7.2006, 15:42 | ||
diam, приём пришёл из C, конструкция:
Хотя, ИМХО, исключения лучше т.к. имеют finally, черезвычайно необходимая вещь если точек вылета много. В PHP finally нет... |
| Автор: diam 9.7.2006, 20:55 | ||||
Тогда давайте тереотезировать дальше: когда нужно применять функции?
Sardar, согласен. Исключения вообще удобная штука |
| Автор: Aliance 15.7.2006, 12:40 |
пока нет, но говорят что будут |
| Автор: jzZ 17.7.2006, 22:41 | ||||
Можно просто короче сделать сам синтаксис:
а оптимизация это нечто другое, вот если бы задача была конкретная... хотя хз может я не понял объяснений ':D' |
| Автор: RobbieV 26.7.2006, 09:33 | ||
Это стандартная конструкция. Во всех блоках условий, до момента true в одном из них, будет вызываться функция actionx(). Если наступает true, то выполняется код для обработки этой ошибки (если нужно), далее переходит сразу к doSomeActionsAtEnd(). Задача не имеет отношения к оптимизации, Вы выбрали конструкцию, которая изначально предназначена для другого. |
| Автор: S.A.P. 26.7.2006, 09:54 | ||
|