中級の PHPer 初心者として、私は退屈なときにさまざまな PHP フォーラムを閲覧するのが好きで、私が PHP を学習していたときにも、多くの PHP 初心者が同じ質問をしているのを見てきました。 PHP 初心者は寄り道を避けるため、この記事を書くことにしました。間違いがあれば、ご指摘ください。とてもシンプルで簡単に言語を習得したいのであれば、少なくとも 3 年はかかりますが、3 年経ってもまだ初心者のままなのはなぜでしょうか。 PHP を学ぶには、データベースとアーキテクチャを学ばなければなりません。オブジェクト指向を学び、フロントエンドを学び、プロトコルを学び、さらには芸術を学ぶことは、PHP が今最も疲れるタイプであるという事実に直接つながります。
最も疲れるのは何もありません。プログラマーは給料が最も低いと考えられていますが、Web に関するほぼすべての知識を習得する必要があります。
これは本当に不公平です。中国では Java や C# から切り替える企業が増えています。私が PHP に切り替えるまで待ってください。皆さんはきっと素晴らしいと思います。私を信じてください。言いたいことの話に戻ります。以下の質問には私が遭遇した内容が含まれています。つまり、私が言ったことは必ずしも正しいとは限りません。つまり、私はあなたの意見を受け入れるつもりです。 、私たちはただすべての PHPer を立ち上がらせたいだけです:-)
1. エンコーディングの問題
これはプログラムである限り、必ず遭遇します。また、Web に関して言えば、コーディングの問題は解決が非常に難しく、プログラムに不可解な問題が発生することがあり、コーディングの問題があるとは考えにくいことがあります。 これらの問題は常に私たちを悩ませます。そのため、PHP 初心者にはコーディングを統一することを強くお勧めします。中国語では GBK や GB2312 を使用することはお勧めしません。
エンコーディングを統一したい場合は、エンコーディングが現れる箇所に注意する必要があります。
1) ヘッダーエンコーディング
を追加することをお勧めします。 PHP 内の次の文 (特殊なヘッダーを除く)
コードをコピー
コードは次のとおりです: header("コンテンツタイプ: text/html;charset=utf-8");
これにより、いくつかの問題を回避できます。たとえば、一部の Web サイトでは、エンコードがブラウザのデフォルトのエンコードと一致しない場合、アラートが表示されてジャンプすることがわかります。
あなたは純粋な HTML です。わからない場合は、head タグの最初の行にメタ エンコード タグを忘れずに入れてください。最終的な効果は次のようになります。
コードは次のとおりです:
2) ファイルのエンコーディング
ファイルを保存する場合、エンコーディングは一貫している必要があります。
一般的なエディターにはこのファイルのエンコーディング情報があります。 UTF-8 ではないので、すぐに変更してください。
たとえば、Dreamweaver でテンプレート ファイルを開くと、右下隅に GB2312 (簡体字中国語) が表示されていることがわかります。現時点では何も変更しないでください。すぐに CTRL+J を押して、[エンコーディングを UTF-8 モードに変更して保存] を選択します。
ファイルのエンコーディングが PHP ファイルである必要はありません。また、JavaScript ファイルと CSS ファイルが両方とも UTF-8 でエンコードされていることを確認する必要があります。
もう 1 つ重要な点があります。BOM です。これは PHP ではあまり一般的ではないため、使用するエディターが UE の場合は、UTF-8 BOM フリー形式を選択する必要があります。
3) データベースのエンコーディング
これについては、インターネット上にたくさんの記事がありますので、説明しません。MySQL を使用している場合は、接続するたびに SET NAMES = 'utf8' を実行してください。
2. MVC の問題点
理論的には、プログラマは適切に動作するプログラムを書くことだけを考えるべきではありません。
そうは言っても、MVC に従ってプログラムを作成した後、コードはエレガントになりますか?
アーキテクチャの学習は、その利点を本当に理解するプロセスです。
この月を使って MVC を学習する必要があると思います。自分自身の目標
しかし、私たちは 1 か月では MVC を本当に理解できないかもしれません。しかし、少なくともそのモデルに従ってその基本を学ぶでしょう、言い換えれば、ひまわりの本を学んでいないかもしれませんが、私たちはできるはずです。
3. オブジェクト指向の問題
PHP のオブジェクト指向の問題については、私は常に頭を悩ませています。 Linus のように、それが良いことだとさえ思っていない人もいます。
これが良いかどうかを心配する必要はありません。少なくとも、オブジェクト指向の誕生から現在に至るまで、長年にわたる進化を経て、オブジェクト指向がさまざまなプロジェクトや言語にまで適用されてきたことを知っておく必要があります。私たちは、オブジェクト指向の存在にはそれ自体の理由があると信じる理由があります。 >実践こそが真実をテストするための唯一の基準です。長年にわたって、オブジェクト指向開発はますます良くなってきています。
いくつかのアーキテクチャでは、オブジェクト指向の知識も同様です。オブジェクト指向は学習するのが簡単ではありませんが、特定の言語になると、その意味も微妙に変化します。また、PHP のオブジェクト指向は非常に柔軟です。オブジェクト指向の特殊な状況を作成します。おそらく、これは Java でよく見られるオブジェクト指向とは異なります。
必要なメソッドをクラスに入れることが、必ずしもオブジェクト指向であることを意味するわけではありません。オブジェクト指向はコーディングにスピードと利便性をもたらします。
よく言われるように、焦る必要はありません。
4. アルゴリズムの問題
PHP のアルゴリズムのほとんどは配列に基づいて実装されているように思えます。また、PHP の配列の特性により、配列が非常に大きくなると効率が大幅に低下することもわかっています。
実際には、PHP は Web サイトを作成するためだけに特別に使用する必要はありません。 Web 上で、PHP が提供するフロントエンドの実際の状況では、アルゴリズムに関係する箇所はほとんどありません。 PHP アルゴリズムの面接の質問は、頭を使ってマニュアルを追加してください。問題ありません。
それでは、アルゴリズムも学ぶ必要があるのでしょうか?
さらに重要なのは、データ構造を学ぶ必要があると思います。このコースは内部スキルのようなものです。これは微妙な方法であなたのコーディングに影響します。
この時点で、私たちは以前の邪悪な剣のテクニックを学びました。
5. フレームワークの問題
PHP はさまざまな言語の中で最も多くのフレームワークを持っていますが、どのフレームワークを使用するかは議論の的となっています。
私の提案は、少なくとも 1 つのフレームワークを学習することです。これにより、PHP についての理解が深まります。フレームワークを学ぶときは、そのフレームワークの使い方やプロジェクトの実行方法を学ぶ必要があります。現時点では、小規模なフレームワークを自分で開発することを選択できます。私たちは、他の人がどれだけ多くのプロジェクトを使用できるかを尋ねません。
私たちはここにいるだけです。
6. JavaScript の問題点
私がこれまで多くの言語を見てきた中で最も驚くべきことは、通常、Java ではすべてがオブジェクトであると主張していることです。実際、JavaScript はすべてオブジェクトだと思います。
JavaScript は簡単に学ぶことができますか? 実際、Web を使用する場合、JavaScript の一般的な操作は DOM 操作です。JavaScript は学ぶのが難しいですか?学ぶのが難しい! 他の言語のオブジェクト指向の考え方に縛られていると、JavaScript のオブジェクト指向の性質を理解するのが難しくなります。
プロトタイプの引数の呼び出し、呼び出し先の呼び出し先の適用、クロージャなどの概念は、私たちを困惑させます。また、奇妙な JavaScript コード スタイルとそのデバッグが難しい機能により、私たちは以前、実装のコードを回避することになりました。 document.ready の奇妙さは賞賛に値します。
個人的には、いくつかの JavaScript フレームワークのソース コードを調べるのが最良の方法だと思います。ということで、通常のget属性のフォームを使うとパラメータが取得できなくなるので、今回はjQuery.formのformSerializeメソッドを考えて作成しました。
7. CSS の問題
CSS を JavaScript から分離したいと思います。
実際、CSS は基本的な CSS プロパティをいくつか知っているだけで、まったく問題ありません。CSS の主な特徴は、自分で作成する必要があることです。
CSS のもう 1 つの特徴は、この属性では効果が得られない可能性があるため、これは最も愚かで効果的な方法です。
もちろん、これは CSS の初心者にとってのみ必要です。これらを理解したら、後はブラウザーとの互換性を持たせる必要があります。実際には、これは 1 つの属性を開くだけのテストです。
IE6 はそれを知っている、IE はそれを知っている* など、いくつかのハックを覚えておくこともできます。この方法で CSS を書くのは十分に標準的ではないと感じる場合は、たとえば、ie6 の場合は ie6.css
と呼ばれ、ページで次のコードを使用します。
コードをコピーします コードは次のとおりです: