ホームページ >バックエンド開発 >PHPチュートリアル >PHP プログラミングのための 10 の良い習慣
賢い人、いくつ見つけられるかな? 関数のパラメータリストにカンマが抜けている場合、「new Array()」が間違っている場合、行末にセミコロンの代わりにコロンが使用されている場合、foreach で「=>」が使用されていない場合、および「+」は文字列を接続するために使用されます。おめでとうございます。すべてのエラーが見つかり、PHP プログラミングの基本をマスターしました。 もちろん、私も上記の問題を特定しましたが、さらに一歩進んでいます。たとえば、配列インデックス内の文字列が引用符で囲まれていないことに気付いたことがありますか?これは重大なエラーを引き起こすわけではありませんが、コーディング エラーです。また、エコー行では一重引用符ではなく二重引用符が使用されていることに気づきましたか? PHP 開始フラグの短縮形を使用していますか?そして「 実際のエラーを見つけた後、上記の質問の後にコメントを追加しました。それだけで回答が「正しい」から「示唆に富む」に変わり、私の応募書類に多くのポイントが与えられたため、彼らは私を採用することに決めました。 (しかし、最終的には断りました。私はタイトな生活ペースが好きで、電気通信市場に関わる会社ではなく、自分の PHP スキルを顧客に捧げたいからです。自分のスキルを披露するステージが必要です。) PHP プログラミングのための 10 の良い習慣 1. 一重引用符で囲まれた文字列を使用します 二重引用符を使用して文字列を囲むと、PHP インタープリターは変数の置換、エスケープ、および " " などのその他の操作を実行します。基本的な文字列を出力したいだけの場合は、一重引用符を使用すると、リソースが節約されます。もちろん、変数置換を実行する必要がある場合は二重引用符を使用する必要がありますが、それ以外の場合は一重引用符を使用します。2. 文字列出力 次のステートメントのうち、最も速く実行されるのはどれだと思いますか?
これは奇妙に思われるかもしれませんが、実際には最後のものが最も速く実行されます。 print は echo より遅く、文字列内の変数を置換するときは遅く、文字列の連結はカンマで連結するよりも遅くなります。 最後の文は、最初の習慣を具体化したものです。したがって、文字列内で変数置換を行わないことにより、プログラムの実行が速くなるだけでなく、構文の強調表示 (変数が強調表示される) により、どのエディターでもコードが読みやすくなります。エコーパラメータはカンマで連結でき、文字列連結よりも高速であることを知っている人はほとんどいません。最後に、最初の習慣を使用すると、このステートメントは非常に優れたものになります。 3. 配列インデックスで一重引用符を使用する 上記のテスト質問でわかるように、$x[sales] は技術的に間違っており、インデックスは括弧で囲む必要がある、つまり $x['sales'] のようにする必要があると指摘しました。これは、PHP が引用符で囲まれていないインデックスを「裸の」文字列として認識し、定数として解釈するためです。定数の定義が見つからない場合は、文字列として解釈されるため、このステートメントは実行可能です。インデックスを囲むことでこの部分の作業を節約でき、今後この文字列を使用して定数を定義する場合でもエラーは発生しません。私自身はテストしていませんが、これを実行すると約 7 倍高速になると聞いたことがあります。このトピックの詳細については、PHP マニュアルの「配列」の章の「配列でできることとできないこと」のセクションを参照してください。 4. スタート記号の略語は使用しないでください そのような記号を使用していますか? 「」は非常に悪い記号であり、XML インタプリタとの競合を引き起こす可能性があります。このコードを公開したら、ユーザーは php.ini ファイルを変更して、このシンボルのサポートを有効にする必要があります。したがって、このフォームを使用する理由はまったくありません。 「 5. 正規表現を使用しないようにしてください 正規の文字列操作を実行する場合は、正規表現(pregおよびeregシリーズの関数)をできるだけ使用しないようにしてください。 str_replace 関数は preg_replace よりもはるかに高速であり、strtr 関数でさえ str_replace よりも高速です。手間を省けば、上司はあなたに感謝するでしょう。 6. ループ宣言で関数を使用しないでください この問題は PHP だけで発生するものではなく、他の言語のコードでもよく見られます。
違い: for($i=0;$i これを説明するのは簡単ですが、多くの人はコードを 1 行減らしてシステム リソースを無駄にしたいだけです。 count 関数がループ宣言で使用されている場合、ループごとに 1 回呼び出されます。ループが多い場合は、多くの時間を無駄にします。 7. register_globals とマジッククオートは絶対に使用しないでください これら 2 つの非常に古い機能は、当時 (10 年前) では良いアプローチだったかもしれませんが、現在はそうではないようです。古いバージョンの PHP では、インストール時にこれら 2 つの機能がデフォルトで有効になるため、セキュリティ ホール、プログラミング エラー、その他の問題が発生する可能性があります。たとえば、変数はユーザーがデータを入力したときにのみ作成されます。どちらの機能も現在は非推奨となっているため、すべてのプログラマは使用を避ける必要があります。過去のプログラムでこれら 2 つの機能が使用されていた場合は、できるだけ早く削除してください。 8. 必ず変数を初期化してください (ここでの「初期化」は「宣言」を指します - 翻訳者注) 初期化されていない変数が必要な場合、PHP インタープリターは自動的に変数を作成しますが、プログラミングでこの機能に依存することはお勧めできません。変数がどこで作成されたかを把握する必要があるため、プログラムが粗雑になったり、混乱したりする可能性があります。さらに、初期化されていない変数のインクリメントは、初期化された変数よりも遅くなります。したがって、変数を初期化することをお勧めします。 9. コードをコメントします この質問は何度も提起されていますが、何度やっても十分ではありません。コードにコメントを付けないプログラマーを雇わないところもあると思います。前回の面接の後、副社長と面接官と一緒に私が書いたコードを確認したところ、彼らも私のこの習慣について学びました。一日後、仕事が決まりました。 PHP マスターを自称する人の中には、自分のコードはよく書かれており、コメントを追加する必要がないと主張している人もいると思います。私の意見では、これらの人々はゴミです。コメントを書くための仕様とテクニックを学び、phpDocumentor や Doxygen などのコメント支援ソフトウェアに慣れておくことは価値があります。 10. プログラミング仕様に従う 使用するプログラミング標準。梨?ゼンド?社内規定?あなたが独自に作成したものであっても、現在人気のあるものであっても、使用しているプログラミング規約について言及してください。 PHP のような緩い言語の場合、適切なプログラミング仕様がなければ、コードはゴミの山のように見えます。基本仕様には、スペース仕様、括弧の一致、命名スタイルなどが含まれます。これは、高品質のコードを追求する人にとって必須です。 誰かが言いました:「あなたの 4 スペースのインデントが嫌いです。何を言おうと思ったのですか?」インデントに 4 つのスペースを使用しますか?これは、タブを使用する場合よりも 3 文字多くのスペースを必要とします。さらに重要なのは、メモ帳よりも高度なエディタを使用している限り、タブのインデント値をカスタマイズできることです。そのため、すべてのプログラマーが最も使いやすい方法でコードを確認できます。可能な場合は 4 に設定し、マゾヒストの場合は 0 に設定します。とにかく気にしませんが、インデントにスペースを使用することはできません。 |