phpプログラミング技術


1.array_は使わないでください.key_existsはキーが配列中に存在するかどうかをissetで判断します.2.可能であれば、static方法を採用する.3.使用を避けるセットgetなどの魔術方法.4.printの代わりにechoを使用し、echoのマルチパラメータを使用して、文字列接続の代わりに、echo$str 1、str 2などを使用します.5.include、requireを使用してinclude_に代えます.オンスとrequire_オンス、そしてできるだけ絶対パスを使用します.6.悪の@7を使わないでください.count/streen/sizeofなどをfor循環の条件文に入れないでください.8.for/whileの代わりにできるだけforeachを使う.9.使用しない変数、特に大きな配列をオフにしてメモリを解放します.10.文字列に変数が含まれている場合、シングルクォーテーションマークではなくダブルクォーテーションマークを使います.例えば、echo"hi、name、nie to meet you"11.小さいファイルを読んでfreadを使って、大きいファイルを読んでfile_uを使います.ゲットするcontensts、特大なファイルはfseekを使います.12. IP 2 long()とlong 2 ip()関数を使用してIPアドレスを整数メモリに変換して、特定のアドレスを一つのセグメント内で計算するのがより簡単で、検索と並べ替えの速度が速くなります.13. emailアドレスを検証する時、checkdnsrr関数を使ってドメイン名が存在するかどうかを検証します.この内蔵関数は指定されたドメイン名がIPアドレスに解析できることを確認できます.14. mysqlを捨てたいと思います.シリーズ関数を改良版のmysqliに変更しました.シリーズ関数;15. 三元の演算子を好きになります.16. プロジェクトの中で多重化できる部分があると感じたら、次の行のコードを書く前に、PEARの中にすでにあったかどうかを確認してください.このオンラインリソースライブラリには400個以上の多重化できるプログラムセグメントが含まれています.これらのプログラムセグメントはすぐにあなたのプログラムに使用できます.あなたのプロジェクトは本当に特別だと言わない限り、いつもあなたの時間を節約するためのPEARバッグを見つけます.17. highlightを使いますfile()は自動的にフォーマットされた綺麗なソースコードをプリントアウトします.18.error_を使うreporting(0)関数は、潜在的に敏感なエラー情報をユーザが見てしまうのを防ぐ.理想的な状況の下で、サーバーを発表するのはphp.iniの中で完全に禁止するべきです.しかし、共有ウェブサーバーを使っているなら、あなたは自分のphp.iniファイルを持っていません.この場合、あなたの一番いい選択はすべてのシナリオの最初の行の前にerror_を追加することです.レポートting(0)19. ネットワークデータベースに大きな文字列を格納する前にgzcopress()とgzunncompress()を使って式の圧縮/解凍文字列を表示します.20.「参照」によってパラメータを伝達する方法で、一つの関数から複数の戻り値を得る.21. 魔術引用符とSQL注入の危険性を完全に理解し、sql注入を最も簡単に防止する方法:php.iniでmagic_quot tesはOnに設定し、mysql_を使用します.リアル.エスケープstring関数の変換;22. スクリプトの実行が開始された時点を知りたいなら、$SERVER[‘REQUESSTUTIME’はtime();23. 正規表現の代わりに関数が同じ機能を行います.24. 正規表現の代わりに関数が同じ機能を完成します.replace関数はpreg_に比べてreplace関数は速いですが、sttr関数の効率はstr(u)です.replace関数の4倍25. 文字列置換関数の場合、パラメータとして配列または文字が受け入れられ、パラメータ長があまり長くない場合、各転送パラメータが文字であるように、クエリーおよび置換のパラメータとして1行のコードのみを書くのではなく、追加の代替コードを書くことが考えられます.26. 選択分岐文(訳注:switch case)を使うと、複数のif、else if文を使うより良いです.27. apacheのmod_を開くdeflateモジュールは、ウェブページの閲覧速度を高めることができます.28.データベース接続は使用終了時にはオフにし、長い接続はしないでください.29.グローバル変数をインクリメントするには、ローカル変数の2倍をインクリメントし、オブジェクト属性をインクリメントする必要があります.たとえば、$this->prop+)は、1つのローカル変数の3倍をインクリメントするよりも遅く、所定のローカル変数の1つをインクリメントする方が、所定のローカル変数の9倍から10倍遅くなります.30.一部変数だけを定義して、関数で呼び出さないと速度が遅くなります.PHPは大域変数があるかどうかを確認します.31. 派生クラスの中の方法は、基本クラスで定義されている同じ方法より速く実行されます.32.1つのパラメータを有する空関数を呼び出すと、かかる時間は7から8回の局所変数インクリメント動作を実行するのに相当し、同様の方法で呼び出すと15回に近い局所変数インクリメント動作が行われる.33.AppacheがPHPスクリプトを解析する時間は、1つの静的HTMLページを解析するより2~10倍遅くなります.できるだけ静的なHTMLページを多く使って、スクリプトを少なく使います.34. スクリプトがキャッシュされていない限り、呼び出しのたびに再コンパイルされます.PHPキャッシュ機構のセットを導入すると、通常は25%から100%の性能を向上させ、コンパイルオーバーヘッドを免除することができる.35. できるだけキャッシュして、memcachedを使うことができます.memcachedは、ダイナミックなWebアプリケーションを加速させ、データベースの負荷を軽減するために使用することができます高機能メモリオブジェクトキャッシュシステムです.36. 文字列を操作して、その長さが何かの要求を満たしているかを確認する必要がある場合、もちろんstreen関数を使用すると思います.この関数は計算をしないので、かなり速く実行されます.しかし、streen()は関数なので、多少遅くなりますが、関数呼び出しはアルファベットの小文字化、PHPは関数名の小文字化、ハッシュ検索などの多くのステップを経て、呼び出された関数に従って実行されます.場合によっては、isset()技術を使って、あなたのコードを実行することができます.(例は以下の通り)
if (strlen($foo) < 5) { echo “Foo is too short”$$ }  
if (!isset($foo{5})) { echo “Foo is too short”$$ }  
呼び出しisset()は、ちょうどstreen()よりも速く、後者とは違って、isset()は言語構造として、その実行は関数検索と小文字化を必要としないことを意味する.
37.変数iのインクリメントまたは逓減を実行すると、$i+は+iより少し遅くなります.この違いはPHP特有のもので、他の言語には適用されませんので、CまたはJavaコードを修正しないでください.すぐに速くなることを期待しています.役に立たないです.iより速いのは、3つの命令だけが必要です.i++は4つの命令が必要です.後段のインクリメントは、実際には一時変数を生成します.この一時変数はその後、インクリメントされます.前のインクリメントは直接元の値でインクリメントされます.
38. 対象に向かう必要があるわけではなく、対象に向けてはかなりのオーバーヘッドがかかり、各方法やオブジェクト呼び出しに多くのメモリが消費されます.
39.クラスですべてのデータ構造を実現するのではなく、配列も有用である.
40.方法を細分しすぎないでください.本当に再利用するつもりのコードは何ですか?
41.できるだけ大量のPHP内蔵関数を採用する.
42. コードに大量の時間消費の関数がある場合、C拡張で実現することが考えられます.
43.あなたのコードを評価します.検査器はコードのどの部分がどれぐらいかかりましたかを教えます.Xdebug調整器は検査手順を含んでいます.評価検査は全体的にコードのボトルネックを表示することができます.
44. mod_zipはApacheモジュールとして、あなたのデータを即時に圧縮し、データ転送量を80%低減することができます.
45. できるだけファイル操作を少なくして、PHPのファイル操作効率も低くないです.
46. Select SQL文を最適化し、可能な限り少なくInsert、Update操作を行う.
47. 循環内部では変数を宣言しないでください.特に大変数:対象(これはPHPの中で注意すべき問題ではないようですね?)
48.多次元配列は、できるだけ循環ネスティングの値を取らないようにする.
49.ユーザーからのデータを信じないでください.httmlentities()またはhttmlspecialchars()を使って先に変換します.