Как оптимально структурировать параметры функции рекурсивной функции в PHP? - PullRequest
2 голосов
/ 25 февраля 2011

У меня нет большого опыта работы с PHP, и я хочу знать, как лучше всего создать рекурсивную функцию в PHP.Возьмем примериндекс и проверка его в функции)

Чтобы обойти эту проблему, можно изменить порядок входных параметров в обратном порядке, что означает, что значение индекса не будет доступно при передаче массива как значения.

Другим способом может быть разделение рекурсивной функции на функцию инициализации и функцию обратного вызова.

Что я хочу знать, так это то, что является «лучшей практикой», желательно на основе моего примера.

Спасибо за ответы

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011

Для меня это зависит от сложности рекурсии. В конкретном примере, который вы дадите, я просто переверну параметры и установлю второе значение по умолчанию null (в этом случае я предпочитаю ноль, а не false).

function config_parse($value, $index = null)
{
  // your logic - id detect null with if(null === $index)
}
0 голосов
/ 25 февраля 2011

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

function parseConfig($config,$index='CONFIG'){
  if(is_array($config)){
      foreach($config as $suffix => $subConfig){
          parseConfig($index . '_' . $suffix, $subConfig)
   }else{
       define($index,$config)
   }
}
...