IFステートメント:より効果的なものは何ですか?多くの小さなもの、またはいくつかの大きなもの?

私は材料をDBに挿入するレシピアプリのためのフォームを持っています。まだ何も提出されていなければ、栄養価は「0」と表示されます。それ以外の場合は、ポスト値に更新されます。

栄養表示のための私の構造は:

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

...そして約20項目続けています。質問は:

2つの異なる形式(動的および静的)を表示するためにif/else文を1つだけ使用してコードをリファクタリングする方が効率的でしょうか?

1
あなたは私に言うことはできません、これはあなたのアプリケーションのボトルネックです...
追加された 著者 knittl,
私はこれを得ることができないので、あなたのコード smalllarge の2つの例を私たちに示すことができます
追加された 著者 Peter,
いいえ、私は私の全体的な質問 - カップルの大きなブロック、または小さなものの多くを説明するために使用した例です。
追加された 著者 elev8,

4 答え

ここの効率は全く問題ではありません。文字通り何百万ものこれらのif文が重複していない限り、処理時間は、ページの読み込みに時間を要する他のすべての処理(データベースからのデータの取得、出力のクライアントへの送信、クライアントがブラウザでレンダリングするなど)。

したがって、コードを可能な限り読みやすく保守的なものにすることに焦点を当てるべきです。

より良いパフォーマンスのために読みやすさを犠牲にしなければならない時があります...しかし、あなたが実際にパフォーマンスの問題を経験するまで、あなたはまだそこから離れています。

4
追加された
@ elev8:良いコードを書くのは、たいていの場合、クラップコードを書くよりも速いです。 :)それでも、コードの可読性と保守性に重点を置いています。早すぎる最適化をしないでください。
追加された 著者 Flimzy,
@ elev8:それは私のポイントではありません:)おそらく改善できるかもしれませんが。ここでのいくつかの他の答えは、読みやすさを改善するためのいくつかの提案を提供しています。私は特に@ PeterSzymkowskiのの使用が好きですか? :else の代わりに演算子を使用します。
追加された 著者 Flimzy,
私の質問は一般的な知識のためのものです。私はちょうど例として上記を使用しました。コードを書くのと同じくらい効率的なコードを書いているのと同じくらい時間がかかるので、私はそうする時間がある間に良いコードを書く方法を学びたいと思っています。
追加された 著者 elev8,
読んでいるのが難しいコードがありますか?笑
追加された 著者 elev8,

必要なのは単なるループです。

$recipes = array('caloriesKey' => 'Calories', 'proteinKey' => 'Protein');
foreach($recipes as $key => $value) {
    echo $value . ($ingredientArray[$key] >= 1 ? $ingredientArray[$key] : 0) . '
'; }
2
追加された
foreachが仕事を遅らせるなら、それは大きな冗談になるでしょう。
追加された 著者 xdazz,
私は、foreachを使うとあまりにも多くの作業を遅くすると言われました。
追加された 著者 elev8,
私はそれをいくつかのデータモデリング講座で聞いた。しかし、thx、ループは間違いなく良い方法でした!
追加された 著者 elev8,
<?php echo $ingredientArray[calorieKey] >= 1 ? $ingredientArray[calorieKey] : 0 ?>

よく見えます。

心配することをやめ、コードの純度を守ってください。

1
追加された

別の変数を作成するコードブロックについては、実際に印刷したい値を保持する $ displayArray という名前を付けてみましょう。

次に、ビューを構築するときに $ displayArray をループするだけです。

これは大きな違いのようには見えないかもしれませんが、次の人のために何が起こっているのかを簡単に把握することができ、変更したり、同じ情報を表示する方法をずっと簡単に切り替えることができます。

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com