コード内で PHP を HTML からできるだけ分離する必要があると 2 回尋ねたところ、回答がありました。使用する代わりに:
<?php
echo "<p>The value of x is $valuex greater.</p>";
?>
私が使用すべきこと:
<p>The value of x is <?php echo $valuex; ?> greater.</p>
形式以外に知っておくべき違いはありますか?
PHP のユニークな点の 1 つは、サーバー側言語とテンプレート言語の両方の目的を果たすことです。理想的には、コードはコントローラーとビューに分離されます。コントローラーは純粋なPHP (HTML なし) であり、ビューはほとんどがHTML (最小限の PHP を含む) です。コントローラーを作成する場合、PHP は他のサーバー側言語とまったく同じです。しかし、ビューを作成しているときは、PHP がテンプレート言語になり、その場合は HTML が支配するはずです。
2 つを分離するもう 1 つの正当な理由は、構文の強調表示です。最初の例では、ほとんどの編集者は文字列内のテキストが実際には HTML であることを認識していないため、構文の強調表示を適用することを知りません。これは、コードが本来よりも読みにくくなり、その後の開発者の生活が困難になることを意味します。
違いは次のとおりです。
<?php $valuex = 6; ?>
<p>The value of x is <?php echo $valuex; ?> greater.</p>
ここでは、php 変数部分のみをエコーする必要があります。
<?php
echo "<p>The value of x is $valuex greater.</p>";
?>
ここでは、部分全体をエコーする必要があります。
その理由は、率直に言って、常にできるだけ柔軟に対応したいからです。ただし、php と html を混在させると、php コアがテンプレートと混同されるため、さまざまなテンプレート/言語などを維持、変更、提供するのが非常に難しくなります。したがって、常に離しておいてください。
コードを分離すると、HTML と PHP の両方のコードを保守するのがはるかに簡単になります。
どちらの場合も、出力は同じになります。
最初の例は、HTML コードを出力する PHP です。2 番目の例は、PHP を含む HTML コードです。「理想的な」例は次のとおりです。
<p>The value of x is <?=$valuex?> greater.</p>
最初のものでは、構文を次のように変更します
<?php
echo "<p>The value of x is ".$valuex." greater.</p>";
?>
そして2番目のものでは、次のような値をエコーするように変更します
<p>The value of x is <?php echo $valuex; ?> greater.</p>
しかし、両方の表記法は同じであり、同じように機能します