ホームページ > php教程 > PHP开发 > PHPマスターへの道 (3)

PHPマスターへの道 (3)

黄舟
リリース: 2016-12-17 09:57:37
オリジナル
1090 人が閲覧しました

ereg-replace の代わりに str-replace を使用する
Perl でのプログラミングに慣れているプログラマーは、文字列置換作業を完了するために ereg_replace を使用することを好むでしょう。これは、PHP での ereg_replace の使用法が Perl でのパターン マッチングの使用法に似ているためです。ただし、以下のコードは、ereg_replace の代わりに str_replace を使用するとコードの速度が大幅に向上することを証明しています。

str_replace と ereg_replace の実行速度をテストします

//このコードは str_replace の実行速度をテストします


?>

for ($i=0; $i<1000; $i+ +) {
str_replace( i>, b>, $string)
}
?>

//このコードは、($i=0; $i ereg_replace(<([/]*)i>, <\1b>, $string)
?>






// 結果を出力します。
結論

str_replace の使用時間 -
ereg_pattern の使用時間 -
上記のコードを実行すると、結果は次のようになります:
str_replace の使用時間 - 0.089757
ereg_pattern の使用時間 - 0.248881
実行結果から、str_replace が使用されていることがわかります。代わりに、文字列置換関数として ereg_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");
17.280596 秒
$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 レコードを持つ大きなデータ テーブルほど速くないことがわかります。 1,000,000 レコードを単独で実行する方がどれだけ速いか。
5. include と require の違いに注意してください
PHP プログラミングでは、include() と require() は同じ関数ですが、include() は条件付き包含関数であるのに対し、require() には使用法がいくつか異なります。無条件に組み込まれる関数です。たとえば、次の例では、変数 $somgthing が true の場合、ファイル somefile がインクルードされます:
if($something){
include("somefile");
}
ただし、 $something がどのような値をとっても、次のコードはファイル somefile をファイルにインクルードします。
if($something){
require("somefile " );
}
次の興味深い例は、これら 2 つの関数の違いを完全に示しています。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
このコードでは、ループするたびにプログラムが同じファイルにインクルードされます。ファイル。明らかに、これはプログラマーの本来の意図ではありません。コードから、このコードが各ループに異なるファイルを含めることを望んでいることがわかります。この関数を完了するには、 include() 関数を使用する必要があります:
$i = 1;
while ($i include("somefile.$i"); }
6. echo と PRint の違いに注意してください
PHP の echo と print の機能は基本的に同じですが、両者には微妙な違いがあります。たとえば、次のコードを実行すると、変数 $res の値は 1 になります。
$ret = print "Hello World";
これは、print は一部の複雑な式で使用できますが、echo は使用できないことを意味します。同様に、コード内の echo ステートメントは、値を返す必要がないため、print ステートメントよりもわずかに高速に実行されます

上記は PHP マスターの道 (3) の内容です。その他の関連記事については、こちらをご覧ください。 PHP 中国語 Web サイト (www .php.cn) に注意してください。


関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート