0

クラシックASPの世界からは、コンテキスト切り替えの問題がありました。コンテキストの切り替えとは、PHPタグを開き、phpコードを少し記述してから、タグを閉じ、HTMLを少し続けて、PHPに戻り、これらの切り替えを頻繁に行うことです。ASPでは、このスタイルのプログラミングは推奨されていません。可能な限り最小化することをお勧めします。

言い換えれば、ASPでこのようなコードを書く代わりに

My name is <%response.write myName %> and I am <%response.write myage %> years of age.

次のようにコードを書くことをお勧めします。

<%response.write "My name is " & myName & " and I am " & myage & " years of age."%>

後者の場合、ASP.DLLはスクリプトの解析に費やす時間が少なくなります。

私の質問は、この概念/問題/心配はPHPの世界に当てはまるかどうかです。

4

3 に答える 3

1

まあ、それは少なくともPHPがどのように機能するかではありません。コンテキストの切り替えはありません。ファイルは完全にPHPであり、<?php ?>タグの外側にあるものはすべて1つの静的エコーステートメントになります。

解析にかかる時間はほとんど同じであり、オペコードキャッシュを使用している場合はまったく関係ありません。

parsekitを使用してさまざまなファイルをコンパイルし、生成されるオペコードの種類を確認できます。

したがって、この:

<?php echo "hi"; ?>
<?php echo "hi"; ?>
<?php echo "hi"; ?>
<html>

まったく同じです:

<?php
echo "hi";
echo "hi";
echo "hi";
echo "<html>";
?>

前の例の改行は、phpタグの外側にありますが、出力されないことに注意してください。

于 2012-07-26T14:16:26.280 に答える
1

少なくともビュー部分では、

My name is <?php echo $myName ?> and I am <?php echo $myAge ?> years of age.

よりも良い

<?php echo "My name is $myName and I am  $myage years of age." ?>

動的部分のみをPHPに任せることをお勧めします。

于 2012-07-26T14:21:22.020 に答える
1

どちらのサンプルもPHPで作成できます。

My name is <?php echo $myName; ?> and I am <?php echo $myage; ?> years of age.

<?php echo 'My name is ' . $myName . ' and I am ' . $myage . ' years of age.' ?>

前者は、PHPに出入りするときに解析に多くの時間(重要ではない)を使用しますが、後者は設計の観点からは保守性が低くなります。ダイナミック/PHPとそうでないものを具体的に述べる最初の方法を提案します。

PHPでshort-open-tagsを有効にしている場合、速度には役立ちませんが、最初の行を次のように短くするとさらに読みやすくなる可能性があります(私の個人的な意見)。

My name is <?=$myName;?> and I am <?=$myage;?> years of age.
于 2012-07-26T14:23:03.907 に答える