0

私はコードイグナイターを使用しています。

郵便で送られるアイテムのリストはかなりたくさんあります。設定されるものもあれば、設定されないものもあります。

同じ問題に取り組むには2つの方法があります。

/*DYNAMIC CODING */

$fields = array(
  'field1', 'field2',
  'field3', 'field4',
  'field5', 'field6',
  'fiel'... ...);

foreach($fields as $f)
  $$f = $this->input->post($f);

/* OR LITERAL CODING? */

  $field1 = $this->input->post('field1');
  $field2 = $this->input->post('field2');
  $field3 = $this->input->post('field3');
  $field4 = $this->input->post('field4');
  $field5 = $this->input->post('field5');
  $field6 = $this->input->post('field6');
  $field7 = $this->...

両方の方法が機能します、私の質問は、一方を他方の上に使用する理由はありますか?

4

4 に答える 4

4

それは私の個人的な好みなので、私の経験では動的コーディングを使用してください。

好みがどちらか一方である場合は、快適に感じるものを使用してください。他の誰かがコードを編集する手段でコーディングしている場合は、選択したものを必ず追加してください。

// a comment

あなたのコードを説明するために。どちらを使用しても、処理時間は目立たないほどのミリ秒単位で異なりますが、コードを理解して正しくコメントすることで、長期的にはミリ秒以上の節約になります。

于 2011-04-19T01:01:13.423 に答える
1

変数のオートコンプリートをIDEで機能させる場合、リテラルコーディングの方がうまくいく可能性があります(たとえば、Eclipseなど)。

そうでなければ、あなたが好むどんなスタイルでも

于 2011-04-19T00:56:39.040 に答える
1

リテラルコーディングには、パフォーマンス上のわずかな利点がある場合があります(動的コードは最初に配列を生成し、次にそれをループするため)。

しかし、私にとって、動的コードは、私たちが話したり考えたりする方法に非常に似ています。「今日は食料品店に行ってからボウリング場に行ってから友達の家に行った」とは言わず、「今日は食料品店とボウリング場と友達の家に行った」と言います。さらに、動的コードは非常に冗長ではないため、コードの多くの行を確認する必要がなくなります(配列を使用すると、パターンを確認すると、その中に何が含まれるかがわかります)、何が起こっているかを即座に確認できます。見た目も良くなります。

しかし、それは本当にあなたがどのようにコーディングするかに依存します。私の言うことに完全に反対する人もいれば、同意する人もいます。長い繰り返しの線を見て少し楽に呼吸できるなら、それを選んでください。しかし、何をするにしても、最も重要なコーディングのベストプラクティスであるコメントを忘れないでください。

于 2011-04-19T01:02:21.707 に答える
0

値の配列とループを使用して最初のオプションを使用する必要があります。これらの変数は将来変更される可能性があり、配列の更新は複数行のコードの更新よりもはるかに簡単だからです。

また、途中でそれらのフィールド名を別の場所で参照する必要があると思います。

于 2011-04-19T01:36:03.990 に答える