15

明確にするために:「エコーと印刷」および「二重引用符と単一引用符」の問題は完全に理解されていますが、これは別のことです:

好む理由はありますか?

echo '<table>';   
foreach($lotsofrows as $row)
{
    echo '<tr><td>',$row['id'],'</td></tr>';   
}
echo '<table>';

以上:

<table><?php
       foreach($lotsofrows as $row)
       { ?>
           <tr>
              <td><?php echo $row['id']; ?></td>
           </tr><?php
       } ?>
</table>

どちらかがより速く実行/解析されますか? よりエレガントですか?(等。)

私は 2 番目のオプションを使用する傾向がありますが、明らかな/不可欠なものを見落としているのではないかと心配しています。

4

6 に答える 6

9

最初の利点

  • 読みやすい
  • ???

2つ目のメリット

  • WYSIWYGが可能
  • 一部の IDE では HTML コード補完/タグ マッチングが可能
  • 頭痛は避けられない
  • 大きな HTML チャンクの方が簡単

特定の PHP ルーチン (MVC ビューなど) に大量の HTML がある場合は、間違いなく 2 番目の方法を使用します。しかし、私はそれを別の形式にしています - 私は厳密に PHP の境界のタグのような性質に依存しています。つまり、PHP セクションをできる限り HTML タグのように見せます。

<table>
  <?php foreach($lotsofrows as $row) { ?>
  <tr>
    <td><?php echo $row['id']; ?></td>
  </tr>
  <?php } ?>
</table>
于 2009-09-08T15:13:38.257 に答える
9

私はピーター・ベイリーに同意します。ただし、ビューでは、ステートメントに代替構文を使用し、短いタグ (特にエコー用) を好みます。したがって、上記の例は代わりに次のようになります。

 <table> 
  <? foreach($lotsofrows as $row): ?>
  <tr>
    <td><?= $row['id']; ?></td>
  </tr>
  <? endforeach; ?>
 </table>

私は、これが Zend Framework の優先標準であると信じています。

于 2009-09-08T15:21:32.390 に答える
6

私の意見では、前者の方がはるかに読みやすいですが、後者の方が技術的には解析が少なくて済みます。その場合の速度の利点は、おそらくマイナーであり、プロファイリングなしでは意味がありません.

時期尚早の最適化は諸悪の根源です。コードが読みやすく、維持しやすいようにします。効率性は保守性よりも劣ります。

この件に関する適切なアドバイスについては、http://en.wikipedia.org/wiki/Optimization_%28computer_science%29#When_to_optimizeを参照してください。

于 2009-09-08T15:00:00.083 に答える
3

書いてあることはとても頼もしいです。PHP は、プログラミング言語として、またはシンプルで強力な Web テンプレート言語として使用できます。この 2 つの使用法を混在させることは非常に悪い習慣であり、長期的にサポートするのは恐ろしいことです。

したがって、2 番目のスタイルは、多くの html マークアップとコードの小さなスポットを含むテンプレートでより使いやすく、最初は「明確な」php プログラミング用です。

于 2009-09-08T15:12:49.710 に答える
2

一番いいのはテンプレートエンジンです。

しかし、どこでもタグを開いたり閉じたりするよりも、echoの方がはるかにクリーンで読みやすいと思います(少なくともこの場合-コメントで指摘されているように、それは依存します)(私はPHPの内部についてあまり知らないので、どれがどれかを知ることができませんただし、より高速です)。

于 2009-09-08T15:01:41.377 に答える
2

1 つ目はプログラミングの観点からは読みやすいですが、2 つ目は WYSIWYG HTML エディタでファイルを開いてページ デザインを変更することができます。

「コードのこの部分がそれを行う」よりも「ページのこの部分がそのように動作する」ことをデザイナーに伝える方がはるかに簡単なので、私は2番目のオプションを好みます。

于 2009-09-08T15:15:53.663 に答える