Заявления IF: что эффективнее?Много маленьких или пара больших? - PullRequest
1 голос
/ 28 октября 2011

У меня есть форма для моего рецепта приложения, которое вставляет ингредиенты в БД.Если ничего еще не было отправлено, значения питания отображают «0».В противном случае они обновляются до почтовых значений.

Моя структура отображения питания:

Calories:
  <?php if ($ingredientArray[calorieKey] >= 1)
  echo $ingredientArray[calorieKey];
    else echo 0; ?><br />
Protein:
  <?php if ($ingredientsArray[proteinKey] >= 1)
  echo $ingredientArray[proteinKey];
    else echo 0; ?><br />

... и продолжается около 20 пунктов.Вопрос в следующем:

Было бы эффективнее реорганизовать код, используя всего 1 оператор if / else для отображения 2 различных форм (динамических и статических), или это лучше, чем есть?

Ответы [ 4 ]

4 голосов
/ 28 октября 2011

Эффективность здесь не имеет значения вообще. Если у вас нет буквально миллионов этих дублирующих операторов if, время обработки фактически равно нулю по сравнению со всеми остальными вещами, которые заставляют вашу страницу загружаться (например, выборка данных из базы данных, отправка вывода клиенту, и клиент отображает его в своем браузере и т. д.).

Таким образом, вы должны сосредоточиться на том, чтобы сделать ваш код максимально читабельным и обслуживаемым.

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

2 голосов
/ 28 октября 2011

То, что вам нужно, это просто петля;

$recipes = array('caloriesKey' => 'Calories', 'proteinKey' => 'Protein');
foreach($recipes as $key => $value) {
    echo $value . ($ingredientArray[$key] >= 1 ? $ingredientArray[$key] : 0) . '<br />';
}
1 голос
/ 28 октября 2011
<?php echo $ingredientArray[calorieKey] >= 1 ? $ingredientArray[calorieKey] : 0 ?>

выглядит лучше.

Перестаньте беспокоиться об этом и позаботьтесь о чистоте кода.

0 голосов
/ 28 октября 2011

Как насчет блока кода, который создаст другую переменную, назовем ее $displayArray, в которой будут храниться фактические значения, которые вы хотите напечатать?

Затем вы можете просто выполнить цикл $displayArray, когдавы создаете свое представление.

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

...