Рефакторинг улучшения PHP-кода - PullRequest
0 голосов
/ 13 января 2012

Привет, сообщество staskoverflow.

Как я могу улучшить следующую структуру кода PHP 5.Список моделей $ month (больше 12) $ month-> days (больше 31)

$ day-> клиентов список клиентов $ day-> someActions список действий для $ клиентов

мне нужно вызывать каждое действие $ для каждого $ клиента.Итак, моя конструкция:

<?php
foreach($monthes as $month) {
    foreach($month->days as $day) {
        foreach($day->clients as $client) {
            foreach($day->actions as $action) {
                $action->run($client);
            }
        }
    }
} ?>

Итак, есть четыре цикла foreach, могу ли я улучшить этот код?

1 Ответ

2 голосов
/ 13 января 2012

Почему вы хотите выйти из вложенных циклов? код, который у вас есть, очень понятен, и если ваша цель состоит в том, чтобы оптимизировать производительность этого метода, то я бы использовал следующий подход:

  1. Сначала я попытаюсь уменьшить количество итераций. Вы можете сделать это, задавая себе вопросы, например, сколько месяцев я действительно хочу отображать на ходу?
  2. Подобные вопросы можно задать о днях и клиентах
  3. у вас есть условия перерыва? Что я имею в виду под этим,

    $ result = $ action-> run ($ client); if ("break_condition" == $ result) { перерыв; }

это должно значительно сократить количество итераций.

...