ホームページ  >  記事  >  バックエンド開発  >  2017 年の最新の PHP クラシック面接の質問の概要

2017 年の最新の PHP クラシック面接の質問の概要

不言
不言オリジナル
2018-04-21 10:30:054333ブラウズ

この記事の内容は、2017 年の最新の PHP クラシック面接の質問をまとめたものです。これは、必要な友人に参考にしていただけるよう、共有します。この記事は今後も更新されます。コメント欄に公開したいと思います 自分の意見や古典的だと思う話題をもとに、この記事を後ほど適切なノードで分類・階層化していきたいと思います。さらにアドバイスをいただき、記事の不備を修正していただければ幸いです

1. 二重引用符と一重引用符の違い

二重引用符は変数を説明しません
  • 単一引用符を挿入します。二重引用符で囲みます。一重引用符で囲まれた変数がある場合は、二重引用符で囲まれた変数名の後に数字、文字、アンダースコア以外の特殊文字を続けるか、変数で囲む必要があります。それ以外の場合は、変数名以降は全体として構文エラーとみなされます
  • 二重引用符はエスケープ文字の説明、一重引用符はエスケープ文字の説明ではありませんが、'と\
  • の説明は一重引用符を作ることができますできるだけ一重引用符を使用してください。一重引用符は二重引用符よりも効率的です。引用符は高くする必要があります(二重引用符は、操作する前に変数が存在するかどうかを確認するために最初にたどる必要があるため、一重引用符は判定する必要はありません)
  • 2. よく使われるスーパーグローバル変数(8)
  • $_GET ----->送信メソッドを取得

$_POST -----> post送信メソッド
  • $_REQUEST ----->getメソッドとpostメソッドの両方を受け取ることができます
  • $GLOBALS ----->すべての変数が配置されます


$_FILE ----->
  • $_SERVERを使用してファイルをアップロードします - --- -->システム環境変数
  • $_SESSION ----->が使用されますセッション制御用


$_COOKIE ----->セッション制御に使用されます
  • 3. HTTP の POST、GET、PUT、DELETE メソッドの違い
  • HTTP では、さまざまな対話方法が定義されています。最も基本的なものは POST、GET、PUT、DELETE であり、完全な名前はリソース記述子です。URL はインターネット上のリソースを表し、post、get、put となります。 、および delegate は、このリソースを追加、削除、変更、確認する操作です。

3.1 フォームでの get と post 送信メソッドの違い

get は、送信されたフォームの action 属性が指す URL にパラメーター データ キューを追加します。その値は、フォーム内の各フィールドに 1 つずつ対応します。 1. URL からは、HTTPPOST メカニズムを使用して、フォーム内の各フィールドとそのコンテンツが HTML ヘッドの action 属性によって指定された URL アドレスに送信されるのを防ぐことができます

getメソッドの場合、サーバー側はRequest.QueryStringを使用して変数の値を取得します。postメソッドの場合、サーバー側はRequest.Formを使用してgetで送信されるデータの量が少なくなります。 post で送信されるデータ量は通常、デフォルトでは制限されていませんが、理論上、IIS4 の最大サイズは 80kb、IIS5 では 1000k です。get のセキュリティは非常に低く、post のセキュリティは高くなります。 high
  • 3.2
  • GET リクエストはデータ情報を取得するためにデータベースにリクエストを送信します。このリクエストはデータベースの選択操作と同様であり、データをクエリするためにのみ使用されます。またはデータを追加しますが、リソースのコンテンツには影響しません。つまり、リクエストによって副作用は発生しません。何度操作を行っても結果は同じです。
  • GET とは異なり、PUT リクエストはサーバーにデータを送信して情報を変更します。このリクエストはデータベースの更新操作と同じで、データの内容を変更するために使用されますが、データの種類は増加しません。 , など。つまり、PUT 操作を何回実行しても、結果は変わりません。
POST リクエストは PUT リクエストに似ており、どちらもデータをサーバーに送信しますが、このリクエストはデータのタイプとその他のリソースを変更し、データベースの挿入操作と同様に、新しいコンテンツを作成します。現在のほとんどすべての送信操作は、POST を使用して要求されます。
  • DELETE リクエストは、名前が示すように、特定のリソースを削除するために使用されます。このリクエストはデータベースの削除操作に似ています。
  • 4. PHP の紹介
  • ハイパーテキスト プリプロセッサ----ハイパーテキスト プリプロセッサ
  • 個人ホームページ 元の名前

目標の目的:

Web 開発者が動的に生成された Web ページをすばやく作成できるようにします。 PHP は、プログラムを HTML ドキュメントに埋め込んで実行します。これは、HTML 編集を完全に生成する CGI よりもはるかに効率的です


HTML:

ハイパーテキスト マークアップ言語

創設者:

Ramsler Le Rasmus Lerdorf、1968 年生まれ、大学カナダ、ウォータールーのラードルフ氏は、最初に個人の Web ページを保守するためにメンテナンス プログラムを prel 言語で書き、次にそれを C で書き直し、最終的に php/fi につながりました

タイムライン:

  • 1995.06.08 PHP/FI が公開されました

  • 1995 php2.0、MySQL のサポートを追加

  • 1997 php3.0

  • 2000 php4.0

  • 2008 php5 。 0

  • php6.0はUnicodeエンコードを完全に解決していないため、基本的にはプロダクションラインでのアプリケーションはなく、基本的にはphp5.3.3とphp5.3.4に多くの機能が実装されています。

  • 共通 IDE (統合開発環境):
統合開発環境

Coda (Mac)
  • PHPStrom
  • Adobe Dreamweaver
  • NetBeans
  • コードを強調表示する一般的なテキストエディタ:

NodePad++
  • SublimeText
  • PHPの利点

PHPの特徴:

phpは、C、Java、Prel、およびPHP独自の構文
  • は CGI または Prel と比較できます他のプログラミング言語と比較して、PHP は HTML ドキュメントにプログラムを埋め込んで実行するため、HTML 編集を完全に生成する CGI よりも実行効率が高くなります
  • ほとんどすべての一般的なデータベースをサポートします。およびオペレーティングシステム
  • PHP は C、C++ を使用してプログラムを拡張できます
  • PHP の利点:

オープンソースコード
  • 無料
  • 迅速さ
  • 強いクロスプラットフォーム
  • 高効率
  • グラフィックス処理
  • オブジェクト指向
  • プロフェッショナルフォーカス
  • PHPテクノロジーアプリケーション:

静的ページ生成
  • データベースキャッシュ
  • プロセスキャッシュ
  • p+css w3c標準
  • 大きな負荷
  • 分散
  • flex
  • MVCサポート
  • Smarty モジュール エンジン
  • PHP認定レベル

ジュニア IFE: インデックス フロント エンジニア フロントエンド エンジニア
  • 中級 IPE: インデックス PHP エンジニア PHP エンジニア
  • 上級 IAE: インデックス アーキテクチャ エンジニア アーキテクチャ エンジニア
  • 6. echo の違い、print_r、print および var_dump
* echo、print是php语句,var_dump和print_r是函数
* echo 输出一个或多个字符串,中间以逗号隔开,没有返回值是语言结构而不是真正的函数,因此不能作为表达式的一部分使用
* print也是php的一个关键字,有返回值 只能打印出简单类型变量的值(如int,string),如果字符串显示成功则返回true,否则返回false* print_r 可以打印出复杂类型变量的值(如数组、对象)以列表的形式显示,并以array、object开头,但print_r输出布尔值和NULL的结果没有意义,因为都是打印"\n",因此var_dump()函数更适合调试
* var_dump() 判断一个变量的类型和长度,并输出变量的数值
7. HTTP ステータス コード

HTTP ステータス コードの詳細な説明を表示するには、ここをクリックしてください

一般的な HTTP ステータス コード:

200 - リクエスト成功
  • 301 -リソース (Web ページなど) は別の URL に永続的にエスケープされます
  • 404 - 要求されたリソース (Web ページなど) が存在しません
  • 505 - 内部サーバー エラー
  • HTTP ステータス コード分類:

1** - 情報、サーバーが受信したリクエストでは、リクエスターが操作の実行を続行する必要があります
  • 2** - 成功、操作は正常に受信され、処理されました
  • 3** - リダイレクト、リクエストを完了するにはさらなるアクションが必要です
  • 4** - クライアント エラー、リクエストに構文エラーが含まれているか、リクエストを完了できません
  • 5** サーバー エラー、サーバーの接続中にエラーが発生しましたリクエストを処理していました
  • 8. マジック クオートとは何ですか?

  • マジック クォートは、エンコード中にエスケープするのではなく、実行時に必要に応じてエスケープするプロセスです。クライアント IP (int が必要) とサーバー IP コードを取得する方法

Client:

10. バージョン管理にこれらのツールを使用する

cvs、svn、vss、git

$_SERVER["REMOTE_ADDR"];或者getenv('REMOTE_ADDR')ip2long进行转换服务器端:gethostbyname('www.baidu.com')11. データベースを最適化する方法

データベース最適化の主要な方法 (古典的な必見) クリックして取得

最も適切なフィールド属性を選択し、定義されたフィールドの幅を可能な限り減らし、フィールドを NOTNULL に設定してみてください。 「province」と「gender」は ENUM に最適です

    サブクエリの代わりに結合 (JOIN) を使用します
  • 手動で作成した一時テーブルを置き換えるにはユニオン (UNION) を適用します
  • トランザクション処理
  • テーブルをロックする、トランザクション処理を最適化する
  • 外部キーを適用する、ロックテーブルを最適化する
  • インデックスを作成する
  • クエリステートメントを最適化する
  • 12. テンプレートエンジンを使ったことがありますか?使用されているテンプレート エンジンの名前は何ですか?
  • Smarty:
  • Smarty は非常に古い PHP テンプレート エンジンで、この言語でテンプレートを使用するために最初に選択しました。更新頻度は低く、新世代のテンプレート エンジンの機能がいくつか欠けていますが、それでも一見の価値はあります。

13. トラフィックの多い Web サイトの場合、サーバーのハードウェアが現在のトラフィックをサポートできるかどうかを確認し、データ テーブルを最適化します。外部ホットリンク

大きなファイルのダウンロードを制御

  • メイントラフィックを迂回するために別のホストを使用する

  • 14. include ステートメントと require ステートメントの違いは何ですか?同じファイルを複数回インクルードすることを避けるために、(?) ステートメントを使用してそれらを置き換えることができます

    • require は無条件のインクルードです。つまり、require がプロセスに追加されると、条件が満たされているかどうかに関係なく、require が最初に実行されます。ファイルが存在しない場合、またはファイルを開くことができない場合は、エラーが表示され、プログラムの実行が終了します。ただし、require には戻り値がありません (おそらく、require の方が include よりも高速であるためです)。インクルードされたファイルが存在しない場合、プロンプトが表示されます。エラーが表示されますが、プログラムは実行を続行します

    • 注: インクルードされたファイルが存在しないか、構文エラーがある場合、require は致命的ですが、include は無効です

    require_once は一度だけインクルードされ、繰り返しインクルードされることを避けることを意味します

    • 15. MVC の理解について話します

    • モデル、ビュー、コントローラーによって完成されるアプリケーションは、実装される関数をコントローラーに送信します。組織関数を受け取り、ビューに渡します

    16. PHPで渡される値について説明します参照渡しと参照渡しの違いは何ですか?

    変数はデフォルトで常に値によって割り当てられます。つまり、式の値が変数に割り当てられると、式全体の値がターゲット変数に割り当てられます。これは、次のことを意味します。変数が別の変数に割り当てられる 変数を使用する場合、1 つの変数の値を変更しても、他の変数には影響しません。PHP には、変数に値を割り当てる別の方法 (参照割り当て) も用意されています。これは、新しい変数が単に __references__

    (つまり、元の変数

    へのエイリアスまたはポインターになる) であることを意味します。新しい変数への変更は元の変数に影響し、その逆も同様です。参照割り当てを使用します。割り当てられる変数 (ソース変数) の前に & 記号を追加するだけです

    オブジェクトはデフォルトで参照渡しになります。より大きなデータの場合は、メモリのオーバーヘッドを節約できる参照渡しの方が適しています

    関連する推奨事項:

    PHP面接の質問の概要

    PHP古典的な面接の質問セットPHP古典的な面接の質問セット

    最も完全で詳細なPHP面接の質問(回答付き)

    以上が2017 年の最新の PHP クラシック面接の質問の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。