1. PHP の echo ステートメントの代わりに埋め込み HTML コードを使用します。
PHP は組み込み Web プログラミング言語であるため、HTML コードと PHP コードを相互に埋め込むことができます。しかし、多くのプログラマは、HTML コードに PHP コードを埋め込むために "" を過剰に使用すると、PHP インタープリタが複数回呼び出され、PHP コードの実行速度が低下することを懸念しているため、HTML コードの出力には PHP の echo ステートメントではなく PHP の echo ステートメントを使用したいと考えています。 HTML コードを直接使用します。しかし、真実は全く逆です。各 PHP ページは、すべての PHP コードを解釈するために PHP インタープリタを 1 回呼び出すだけです。したがって、PHP コードは必要な場合にのみ埋め込まれ、ほとんどの場合、結果の入力には HTML コードが直接使用されます。 echo ステートメントの解析が減少するため、コードの実行速度が向上する場合があります。
次のコードは私たちの結論を証明しています。このコードでは、前に紹介した時間テスト関数を使用します。
2. ereg-replace の代わりに str-replace を使用します
プログラミングに Perl を使用することに慣れているプログラマは、文字列置換作業を完了するために ereg_replace を使用することを好むでしょう。 PHP の使用法は、Perl のパターン マッチングの使用法に似ています。ただし、次のコードは、ereg_replace の代わりに str_replace を使用すると、コードの実行速度が大幅に向上することを示しています。
str_replace と ereg_replace の実行速度をテストします
//このコードは str_replace の実行速度をテストします
強調 ?> for ($i=0; $istr_replace(i>
}
?> / /このコードは ereg_replace
for ($i=0; $iereg_replace(<([/]*)i>, < の実行速度をテストします。 1b>
}
?>
//結果を出力
str_replace を使用する時期です -
ereg_pattern を使用する時間 -
上記のコードを実行すると、結果は次のようになります:
str_replace を使用する時間 - 0.089757
ereg_pattern を使用する時間 - 0.248881
実行結果からわかります。文字列置換関数として ereg_replace の代わりに str_replace を使用すると、コードの実行速度が大幅に向上します。
3. 文字列参照に注意してください
他の多くのプログラミング言語と同様、PHP では二重引用符 ("") を使用して文字列を引用することも、一重引用符を使用することもできます。引用符()。ただし、PHP では、二重引用符を使用して文字列を引用すると、PHP パーサーはまず文字列内に変数への参照があるかどうかを分析し、変数がある場合はその変数を置き換えます。一重引用符の場合は、それほど複雑ではありません。一重引用符で囲まれたすべての文字列が直接表示されます。明らかに、PHP プログラミングでは、二重引用符よりも一重引用符を使用して文字列変数を引用する方が高速です。
4. データベースでの共同操作の使用を避ける
他の Web プログラミング言語と比較して、PHP のデータベース機能は非常に強力です。ただし、PHP でデータベースを実行するのは依然として非常に時間と労力がかかるため、Web プログラマはデータベース クエリ操作を最小限に抑え、データベースに適切なインデックスを確立する必要があります。もう 1 つの注意すべき点は、PHP を使用してデータベースを操作する場合、複数のデータ テーブルの結合操作を使用しないようにすることです。結合操作はデータベースのクエリ機能を強化しますが、サーバーの負荷が大幅に増加します。
この問題を説明するために、以下の簡単な例を見てみましょう。
データベースに 2 つのデータ テーブル foo と big_foo を作成しました。データテーブル foo には、1 から 1000 までのすべての自然数を含むフィールドが 1 つだけあります。データ テーブル big_foo にもフィールドは 1 つしかありませんが、1 から 1,000,000 までのすべての自然数が含まれています。したがって、サイズの点では、big_foo は foo とそれ自体を組み合わせたものと等しくなります。
$db->query("select * from foo");
0.032273 秒
$db->next_record();
0.00048999999999999 秒
$db->query( "foo 値に挿入 (NULL)");
0.019506 秒
$db->query("select * from foo as a, foo as b"); $db ->query("select * from foo as a, foo as b where a.id > b.id");
14.645251 秒
$db->query("select * from foo as a , foo as b where a.id = b.id");
0.041269 秒
$db->query("select * from big_foo");
25.393672 秒
演算結果上から 1,000 レコードを持つ 2 つのデータ テーブルを結合する方が、1,000,000 レコードを持つ大きなデータ テーブルを単独で操作するよりもそれほど高速ではないことがわかります。
5. include と require の違いに注意してください
PHP プログラミングでは、include() と require() は同じ機能を持ちますが、いくつかの違いがあります。使用上の違いは、include() が条件付き包含関数であるのに対し、require() は無条件包含関数であることです。たとえば、次の例では、変数 $somgthing が true の場合、ファイル somefile がインクルードされます。 $ に関係なく、何かはどのような値を取りますか? 次のコードは、ファイル somefile をファイルに組み込みます。例で十分です。これら 2 つの関数の違いを説明してください。 $i = 1;
while ($i require("somefile.$i");
$i++; このコードでは、プログラムはループするたびに同じファイルをインクルードします。明らかに、これはプログラマーの本来の意図ではありません。コードから、このコードが各ループに異なるファイルを含めることを望んでいることがわかります。この関数を完成させたい場合は、関数
include(){
$i = 1;
while ($i < 3) {
include(" somefile.$i" );
$i++;
}
6. echo と print の違いに注意
echo の機能PHP の print と print は基本的に同じですが、両者の間には微妙な違いもあります。たとえば、次のコードを実行すると、変数 $res の値は 1 になります。
$ret = print "Hello World";
これは、print は一部の複雑な式で使用できるが、echo は使用できないことを意味します。同様に、echo ステートメントは値を返す必要がないため、コード内の print ステートメントよりもわずかに高速に実行されます。