PHPは、ブログやWebサイトを作成するのに最も役立つ言語であり、さらに多くのカスタム関数を導出するために使用できる多くの関数を備えています。 最も便利なものを集めました 初心者のためのPHPの秘訣とヒント これらのPHPトリックは、コーディングを生産的かつ効果的にします。
PHPの秘訣とヒントのリスト
1.エコーは印刷よりも高速です。
2.文字列を二重引用符( ")ではなく一重引用符( ')で囲むと、PHPは'… 'ではなく"… "内の変数を検索するため、高速になります。評価が必要な変数を使用しない場合は、これを使用してください。ストリング。
3.二重引用符で囲まれた変数の代わりにsprintfを使用すると、約10倍高速になります。
4.文字列の連結の代わりに、echoの複数のパラメーター(またはスタック)を使用します。
5.事前計算を使用して、ループ内ではなく前にforループの最大値を設定します。 つまり、($ x = 0; $ x <count($ array); $ x)の場合、これは毎回count()関数を呼び出し、forループが開始する前に代わりに$ max = count($ array)を使用します。
6.変数の設定を解除するかヌルにして、メモリ、特に大きな配列を解放します。
7. __get、__ set、__ autoloadのような魔法は避けてください。
8.可能な場合はrequire_once()の代わりにrequire()を使用します。
9.インクルードでフルパスを使用し、OSパスの解決に費やす時間を短縮します。
10. require()とinclude()は、ファイルが欠落している場合にrequireが停止することを除いて、すべての点で同一です。 パフォーマンスに関しては、ほとんど違いはありません。
11. PHP5以降、スクリプトの実行が開始された時刻は$ _SERVER ['REQUEST_TIME']にあります。これは、time()またはmicrotime()の代わりに使用してください。
12. PCRE正規表現はEREGよりも高速ですが、代わりにstrncasecmp、strpbrk、striposなどのより高速なネイティブ関数を使用できるかどうかを常に確認してください。
13. PHPでXMLを解析する場合は、PHP XML関数を使用するxml2arrayを試してください。HTMLの場合は、PHPのDOMドキュメントまたはPHP4のDOMXMLを試すことができます。
14. str_replaceはpreg_replaceよりも高速で、str_replaceは全体的に最適ですが、文字列が大きいほどstrtrの方が速い場合があります。 str_replace内でarray()を使用すると、通常、複数のstr_replaceよりも高速になります。
15.「elseif」ステートメントは、selectステートメント(別名case / switch)よりも高速です。
16. @によるエラー抑制は非常に遅いです。
17.帯域幅の使用量を減らすには、Apachev2でmod_deflateをオンにします。Apachev1の場合はmod_gzipを試してください。
18.データベース接続が完了したら、データベース接続を閉じます。
19. $ row ['id']は$ row [id]より7倍高速です。これは、引用符を指定しない場合、定数を意味しないと仮定して、意味するインデックスを推測する必要があるためです。
20.使用する短いタグを含め、他のすべてのスタイルが減価償却されるため、PHPを宣言するときのタグ。
21.厳密なコードを使用し、エラー、通知、警告の抑制を避けて、コードをよりクリーンにし、オーバーヘッドを減らします。 error_reporting(E_ALL)を常にオンにすることを検討してください。
22. PHPスクリプトは、静的ページよりもApache httpdによって2〜10倍遅く提供されます。 サーバーサイドスクリプトの代わりに静的ページを使用してみてください。
23. PHPスクリプト(キャッシュされていない場合)は、呼び出すたびにその場でコンパイルされます。 PHPキャッシング製品(memcached、eAccelerator、Turck MMCacheなど)をインストールして、コンパイル時間を削除することで、通常、パフォーマンスを25〜100%向上させます。 EasyApache3を使用してcPanelでeAcceleratorを設定することもできます。
24.あまり頻繁に変更されないページがある場合の別のキャッシュ手法は、PHPページのHTML出力をキャッシュすることです。 SmartyまたはCacheLiteをお試しください。
25. strlenの代わりに、可能な場合はissetを使用します。 (すなわち:if(strlen($ foo)<5){echo“ Foo is too short”;} vs. if(!isset($ foo {5})){echo“ Foo is too short”;})。
26. ++ $ iは$ i ++よりも高速であるため、可能な場合は事前インクリメントを使用します。
27. PHPの無数の事前定義された関数を利用します。ネイティブ関数の方がはるかに高速になるため、独自の関数を作成しようとしないでください。 時間とリソースを非常に消費する関数がある場合は、それらをC拡張機能またはモジュールとして作成することを検討してください。
28.コードのプロファイルを作成します。 プロファイラーは、コードのどの部分がどのくらいの時間を消費するかを示します。 Xdebugデバッガーにはすでにプロファイラーが含まれています。 プロファイリングにより、ボトルネックの概要がわかります。
29.コードを文書化します。
30.良いコードと悪いコードの違いを学びましょう。
31.コーディング標準に固執すると、他の人のコードを理解しやすくなり、他の人があなたのコードを理解できるようになります。
32.コード、コンテンツ、およびプレゼンテーションを分離する:PHPコードをHTMLから分離します。
33. Smartyなどの複雑なテンプレートシステムをわざわざ使用しないでください。すでにPHPに含まれているものを使用し、ob_get_contentsを参照して抽出し、データベースからデータをプルするだけです。
34.ユーザーランド($ _POSTなど)からの変数を信頼しないでください。mysqlを使用する場合はmysql_real_escape_stringを使用し、HTMLとして出力する場合はhtmlspecialcharsを使用してください。
35.セキュリティ上の理由から、Webルートのdisplay_errorsやphpinfo()など、パス、拡張機能、構成に関する情報を公開する可能性のあるものは決してありません。
36. register_globalsをオフにします(理由によりデフォルトで無効になっています!)。 セキュリティ上のリスクがあるため、本番レベルのスクリプトでこれを有効にする必要はありません。 unregister_globals()を使用して、オンにする必要のあるスクリプトを修正し、オフにする必要のあるスクリプトを修正します。 PHP6で削除されるように設定されているため、これを今すぐ実行します。
37.パスワードを保存および評価するときにプレーンテキストを使用して公開を回避し、代わりにmd5ハッシュなどのハッシュを使用します。
38. ip2long()およびlong2ip()を使用して、IPアドレスを文字列ではなく整数として格納します。
39. PEARプロジェクトを使用することで、車輪の再発明を回避し、高水準の既存のコードを提供できます。
40. header( 'Location:'。$ url);を使用する場合。 その後にdie()を付けることを忘れないでください。 場所が変更されてもスクリプトは実行を継続するため、または可能な限り一緒に使用することは避けてください。
41. OOPでは、メソッドが静的メソッドになる可能性がある場合は、静的として宣言します。 速度の向上は4倍です。
42.OOPメソッドでローカル変数をインクリメントするのが最速です。 関数内でローカル変数を呼び出してグローバル変数をインクリメントするのとほぼ同じですが、ローカル変数の2倍の速度です。
43.オブジェクトプロパティ($ this-> prop ++など)のインクリメントは、ローカル変数の3倍の速度です。
44.未定義のローカル変数のインクリメントは、事前に初期化されたものより9〜10倍遅くなります。
45.関数でグローバル変数を使用せずに宣言するだけで、処理速度が低下します(ローカル変数のインクリメントとほぼ同じ量)。 PHPはおそらく、グローバルが存在するかどうかを確認するためのチェックを行います。
46.パフォーマンスを変更せずに(テストメソッドの前後に)テストクラスにさらに10個のメソッドを追加したため、メソッドの呼び出しはクラスで定義されたメソッドの数とは無関係のようです。
47.派生クラスのメソッドは、基本クラスで定義されたメソッドよりも高速に実行されます。
48. 7つのパラメーターと空の関数本体を使用した関数呼び出しは、8〜15回の$ localvar ++操作を実行するのとほぼ同じ時間かかります。 同様のメソッド呼び出しは、もちろん約XNUMXの$ localvar ++操作です。
49.すべてがOOPである必要はありません。多くの場合、それは単なるオーバーヘッドであり、各メソッドとオブジェクトの呼び出しは大量のメモリを消費します。
50.ユーザーデータを信頼せず、mysql_escape_stringまたはaddslashesの代わりにmysql_real_escape_stringを使用してSQLクエリで使用する文字列をエスケープします。 また、magic_quotes_gpcが有効になっている場合は、最初にストリップスラッシュを使用する必要があることに注意してください。
51. PHPのmail()関数のヘッダーインジェクションの問題を回避します。
52.データベース変数(少なくともパスワード)の設定を解除します。データベース接続を行った後は、パスワードは必要ありません。
53. RTFM! PHPは素晴らしいマニュアルを提供しており、おそらく最高のマニュアルのXNUMXつであり、実践的な言語を提供し、実用的な例を提供し、平易な英語で話します。
これらは、PHP言語を学び始めたばかりの人や、良い時期から開発している人にとって非常に役立つPHPの秘訣とヒントの一部です。 ただし、RTFMはPHPを学ぶための最も効率的な方法です。
あなたが初心者として始めているならば、それは本当に役に立ちます。
素晴らしいヒント..ありがとう!
ブックマークしました!!!!
素晴らしい投稿です。これらのphpのヒントとコツは、すべての新しいphp開発者に大いに役立ちます。そこから、私はまったく知らないphpのヒントとコツもいくつか手に入れました。
嬉しいです、あなたはその投稿が好きでした。
すばらしいヒントですが、ポイント37を変更する必要があると思います。単純なmd5ハッシュは、私たちが住んでいる世界では十分に洗練されていません。
ええ、私は知っていますが、プライバシーはプライバシーです。
nr。15
/ elseがスイッチよりも速い場合、あなたは正しいです、私はいくつかのテストを行いました、
ただし、どちらの場合にスイッチを使用するかを検討する必要があります。
私はそれを循環させ、10,1000,100000、1、およびXNUMX万サイクルをテストしました。結果は次のとおりです。
100kサイクルで、ローカルマシンで0,13秒の差異が発生します(外部サーバーでは、差異が少なくなるはずです)。
したがって、スイッチのif / elseの使用を検討する必要があります。 コードがすっきりしているので、スイッチを使用することを好みます。 if / elseの代わりに1つのスイッチ、2つのスイッチ、さらには100のスイッチを使用する…それは問題ではなく、意味がありません。
nr。26
私は今テストを実行します、
$ i ++と++ $ iで
シンプルです。26mil以上を使用するまで、10という数字は無意味です。 サイクル。
そして違い?
$ i ++ 10秒で2.67448milサイクル
++ $ i10秒で2.605528milサイクル
24.(…)SmartyまたはCacheLiteを試してください。
33.Smartyなどの複雑なテンプレートシステムをわざわざ使用しないでください
大丈夫。
(私は個人的に#33を削除します。smarty(または他のテンプレートシステム)には、ob_関数と比較して多くの利点があります…)
注目すべきヒント。 おい、ありがとう、私のプログラミングの仕事で大いに助けてください。
エコーはXNUMXつのオペコードで印刷するよりも高速なので、実際には問題ではありません。 また、print()は関数ですが、echoは関数ではありません。 これを試して:
$ variable and print '変数が設定されています!';
そしてインクリメントについて:$ i + = 1; 最速のものです。
素晴らしい記事、ありがとう!
すばらしいヒント..共有してくれてありがとう..ブックマークされて共有されました🙂
magic_quotes_gpcを使用せずにデータをサニタイズすることは可能ですか?
これは、いくつかのPHPコードのトリックの素晴らしいまとめです。 開発者は、開発するコードのパフォーマンスも考慮する必要があります。 共有していただきありがとうございます。
おかげで、私はPHPの初心者なので、これらのヒントは私にとって素晴らしいものです。
こんにちは、その素晴らしいコンテンツとphpは非常にクールな言語です。その機能は非常に理解しやすく、習得しやすいので、私は確かにこのトリックに従います。
これらの興味深いphpトリックを投稿することで、本当に素晴らしい仕事をしました。
共有してくれてありがとう素晴らしい記事
すばらしいヒントですが、ポイント37を変更する必要があると思います。単純なmd5ハッシュは、私たちが住んでいる世界では十分に洗練されていません。
私はあなたのウェブサイトを長い間フォローしてきました、ありがとう。
エコーを使用する前に文字列を結合します。 エコーはあなたのウェブサイトを遅くします。
素晴らしい情報人。
素晴らしい投稿です! あなたは良い仕事をしています。素敵な共有をありがとう。 ありがとう。
驚くべき50のPHPのヒント、ええ、私はこの分野の初心者なので、本当に助けになります。 共有してくれてありがとう。