ホームページ >バックエンド開発 >PHPチュートリアル >PHP の面接で基本的な質問をしてみませんか

PHP の面接で基本的な質問をしてみませんか

藏色散人
藏色散人転載
2021-05-25 13:40:594604ブラウズ

この記事は、PHP 面接の基本的な質問をすべての人に向けてまとめたものです。これには一定の参考価値があります。困っている友人は参考にしてください。すべての人に役立つことを願っています。

1. エラーを例外処理に変換するために使用できる関数はどれですか?

A:set_error_handler

B:error_reporting

C:error2Exception

D:catch

正解: *A *

回答分析: set_error_handler () はコールバック関数を指定でき、エラーが発生した場合、指定されたコールバック関数を通じて自動的に処理されます。コールバック関数で新しい例外をスローするだけです。

2. シェル関数に関する次の説明のうち、正しいものはどれですか?

A: シェル関数は最初に呼び出してから定義できます。

B: シェル関数はキーワード function を使用して定義する必要があります。

##C: シェル内の変数関数はローカル変数として宣言できます

D: シェル関数は return を通じてのみ値を返すことができます。1 は成功、0 は失敗です

#正解: C

回答分析: シェル関数は呼び出す前に最初に定義する必要があります。宣言する場合、キーワードを使用する必要はありません。関数内のローカル変数は local を通じて定義できます。シェル関数の戻り値、0 は成功、0 以外は成功ですエラー、他のオプションは正しいです。

3. 全文検索テクノロジに関する次の誤った記述は次のとおりです:

A: Solr は新世代の全文検索コンポーネントです。 Lucene より検索効率が高く、HTTP アクセスにも対応しており、PHP から Solr を呼び出すこともできるので非常に便利です。

B: MySQL では、フィールドの FULLTEXT インデックスを作成して全文検索を実現できます。現在、MyISAM テーブルと InnoDB テーブルの両方が FULLTEXT インデックスをサポートしています。

C: Sphinx は SQL ベースの全文検索エンジンで、MySQL と組み合わせて全文検索を行うことができ、データベース自体よりも専門的な検索機能を提供できます。

D: Lucene に付属するバイナリ単語セグメンテーション アナライザーである CJKNalyzer は、単語セグメンテーションが非常に高速で、一般的な全文検索のニーズを満たすことができます。

正解: *A *

答えの分析: Solr は、新世代の全文検索コンポーネントです。Lucene に基づいているため、次のことはナンセンスです。 Lucene より速いと言っています:)

4. シングルトン パターンに関するどの記述が間違っていますか?

A: シングルトン モードの目的は、グローバル環境内にクラスのインスタンスが 1 つだけ存在できるようにすることです。

B: シングルインタレスト モードでは、通常、コンストラクターを設定する必要があります。 to private

C: 世界にインスタンスが 1 つだけ存在するようにするには、コンストラクターをプライベートに設定するだけで済みます。

D: データベースに接続する機能は通常、シングルトン モード

正解 :*C *

回答分析: コンストラクターをプライベートに設定すると、new を使用して新しいインスタンスを作成できなくなりますが、複数のインスタンスは引き続き作成できます。クローン、逆シリアル化などを通じて作成されます。

5. エンジンの正規表現のうち、間違っているものはどれですか?

A 通常のエンジンは主に 2 つのカテゴリに分類できます。1 つは DFA、もう 1 つは NFA です。

B 一般に、NFA エンジンの検索は高速です。ただし、DFA は式指向で操作が簡単なため、プログラマーは一般に DFA エンジンを好みます。

C NFA 式が優先され、DFA テキストが優先されます。

D 優先数量指定子とグループ キャプチャの無視をサポートするかどうかを使用して、エンジン タイプを決定できます。NFA をサポートする、DFA をサポートしない

正解: B

答えの分析: 正解は次のとおりです。一般に、DFA エンジンの検索は高速です。ただし、NFA は式指向で操作が簡単なため、プログラマーは一般に NFA エンジンを好みます。

6. 次のオプションのうち、ボックス内の正規表現と一致するものはどれですか?

/.Sd/

A. 123

B. **1234

C. 1234

D.123

正解: B

解答分析: この質問の重要な点は、この正規表現の意味を理解することです。左から右に、最初の表現は 0 個以上の任意です。文字 ( .)、アスタリスク ()、123、最後に数字が続きます。したがって、答えはBです。

7. データベースに関する次の記述のうち、間違っているものはどれですか?

#A: 効率性を高めるため、データベースには複数の読み取りライブラリを含めることができます。

B: データベースはホット スタンバイにマスター/スレーブを使用できます。

C: データベースは複数の読み取りライブラリを提供できません。マスターおよびマルチスレーブのアーキテクチャ

D: データベースのマスターとスレーブはログを通じて同期されます

正解: C

解答分析: データベースは次のことができます。マルチマスターおよびマルチスレーブのアーキテクチャを提供します。

8.XSS 脆弱性を修正する方法ではないのは次のうちどれですか?

#A: パラメータで htmlspecialchas フィルタリングを実行します

#B: パラメータでホワイトリスト フィルタリングを使用します

#C: ブラウザでの入力コンテンツの表示を許可しません

D: ユーザーが js タグに入力した内容を出力することは禁止されています。

正解: *A *

解答分析: このタイプのフィルタリングでは、山かっこタイプ XSS を解決します。js タグの xss

を解決できません。 9. PHP SAPI モードではないものは次のうちどれですか? A.ISAPI

B.CGI

C.FastCGI

D.RESTFUL API

正解: D

回答分析: A ~ C は最もよく使用されるパターン、D はインターフェイスの構成方法です。

10. 大きなファイルを 1 行ずつスキャンするには、次のどの方法の方がパフォーマンスが高いですか? A: IteratorAggregate インターフェイスを実装するクラスを作成し、このクラスを介した foreach トラバーサルを使用します。

B: file_get_contents を使用して、ファイルの内容を一度にメモリにロードし、1 行ずつ調べます。

C: exec 関数を通じて、シェル ツールを呼び出して走査します。

D: 他の人が書いたクラス ライブラリを使用する

正解: A

解答分析: IteratorAggregate を使用してファイルを開き、移動して 1 行ずつスキャンします。ファイルサイズの影響を受けないポインター。 file_get_contents を使用して大きなファイルを処理すると、PHP メモリ オーバーフローが簡単に発生する可能性があります。exec を呼び出すと追加のプロセスが作成され、パフォーマンスに影響します。他の人が作成したクラス ライブラリの品質は高くない可能性があります。

11. 次のオプションのうち、デザイン パターンが従うべき原則ではないものはどれですか?

A: 継承より合成の方が優れています

B: インターフェイスのプログラミング

C: 結合を可能な限り減らす

D: 高い値を使用するようにしてください-パフォーマンス構文

正解: D

回答分析: デザイン パターンの焦点はコードの保守性と再利用性です。オプション D は焦点ではありません。デザインパターン。

12.バックトラッキングに関する次の表現のうち、間違っているものはどれですか?

A ab.lmn は abcdeflmnghijklmn の abcdeflmnghijklmn と一致します

B ab.?lmn は abcdeflmnghijklmn の abcdeflmn と一致します

C ab??c は abcdeflmnghijklmn

D と一致します。 *lmn は abcdeflmnghijklmn の abcdeflmn と一致します

正解: D

解答分析: D は貪欲一致であるため、一致結果は abcdeflmnghijklmn

13 となります。関数内で try catchfinally 構文構造が使用されている場合、return はどこに記述すべきですか?

A: 最終的に

B:

で試す C:

でキャッチ D: 任意の位置

正解回答: A

回答分析: try の return 後も、finally は実行を継続します。finally にも return がある場合、最終的な戻り値は、finally の return の値になります。

14. NOSQL に関する次のステートメントは間違っています:

A: Redis は文字列、ハッシュ、リスト、セット、順序付きセットなどのデータ構造をサポートしていますが、現在、Redis はトランザクションをサポートしていません。 。

B: MongoDB は AP in CAP 定理をサポートし、MySQL は CAP in CA をサポートします。これらはすべて、不可能な存在をサポートします。

C: MongoDB は、最初にコレクション構造を作成せずにデータを直接挿入できますが、現在、MongoDB はトランザクションをサポートしていません。

D: Memcache は TCP プロトコルと UDP プロトコルの両方をサポートしており、PHP セッションを Memcache に保存できます。

正解: A

答えの分析: Redis はトランザクションをサポートしています。

15. Innodb のロック メカニズムについて間違っているのはどれですか?

A: Innodb は、テーブル ロックと行ロックという 2 つのロック メカニズムを提供します。

B: Innodb のテーブル ロックは、テーブルが変更されるとトリガーされます

C: Innodb 更新時、排他的関係する行にロックが自動的に追加され、ミラー コピーが作成されます。このとき、選択すると、ミラー コピーのデータがクエリされます。

D: Innodb 行ロック状態では読み取りは影響を受けません。 、書き込みに影響します (データが関係します)

正解: A

16. 次のどれが作成されますか? 毎週水曜日 01:00~04:00 3 ごとに実行crontab コマンドを 1 分ごとに実行しますか?

A: 1,4 3 /bin/bash /home/sijiaomao/ok.sh

B:/3 1,4 3 /bin/bash /home/sijiaomao/ok.sh

C:/3 1-4 3 /bin/bash /home/sijiaomao/ok.sh

D:/3 1-4 * /bin/bash /home/sijiaomao/ok .sh

正解: C

解答分析: A: 毎週水曜日の 1:04 に毎分実行 B: 毎 3 時の 1:毎週水曜日 04 時 1 分ごとに 1 回実行 C: 要件を満たす D: 毎日 1:04 に 3 分に 1 回実行

17. 分割する前に、システムは SQL join Completed を通じて取得できます。分割後、データベースが異なるインスタンス、異なるホストに分散される可能性があり、結合が非常に面倒になります。この問題に対する効果的な解決策ではない方法は次のうちどれですか?

グローバル テーブル、システム内のすべてのモジュールが依存する可能性のあるいくつかのテーブルは、各ライブラリに保存されます。

B フィールドの冗長性。「注文テーブル」に「販売者 ID」を保存する一方で、販売者の「名前」フィールドも冗長であるため、注文の詳細を照会するときに「販売者」を照会する必要はありません。ユーザーの「表面」。

C マスター/スレーブ レプリケーションにより、データベースの読み取りと書き込みが分離されます。

D データの同期では、データベース A の tbl_a テーブルがデータベース B の tbl_b に定期的に関連付けられ、指定されたテーブルをマスターとスレーブの間で定期的に同期できます。

正解: C

解答分析: マスター/スレーブ レプリケーションにより、データベースの読み取りと書き込みが分離されます。読み取りの同時実行性を拡張することしかできませんが、データベース間の結合の問題を軽減することはできません。

18. ネットワーク IO モデルに関して正しいのは次のうちどれですか?

#A.Select は Epoll よりも高速です

B.nginx は選択モデルを使用します

C.apache は select と epoll 間の切り替えをサポートします

D.epollより大きな同時実行性をサポートできます

正解: D

答えの分析: epoll のほうが高速です。 B nginx は epoll モデルを使用します。 Capache は select

19 のみをサポートします。PHP が実行されるとき、次の実行プロセスがあります: スキャン (Lexing) - コンパイル - 実行 - 解析、その意味は次のとおりです:

A: PHP の変換code 言語フラグメント (トークン) の場合、トークンを単純で意味のある式に変換し、式を Opocdes にコンパイルし、Opcodes

B を順番に実行します。PHP コードを言語フラグメント (トークン) に変換し、トークンを単純で意味のある式に変換します。意味のある式を作成し、オペコードを順番に実行し、式を Opocdes にコンパイルします

C: PHP コードを言語フラグメント (トークン) に変換し、式を Opocdes にコンパイルし、オペコードを順番に実行し、トークンを単純で意味のある式に変換します

D: PHP コードを変換します 言語フラグメント (トークン) に変換します、式を Opocdes にコンパイルし、トークンを単純で意味のある式に変換し、オペコードを順番に実行します

#正解: C

解答分析: 正解は C です、そして正しい順序は次のとおりです: スキャン (字句解析)、解析、コンパイル、実行

以上がPHP の面接で基本的な質問をしてみませんかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。