ホームページ  >  記事  >  2022 Xiaomi シニア PHP エンジニアの面接の質問 (模擬試験用紙)

2022 Xiaomi シニア PHP エンジニアの面接の質問 (模擬試験用紙)

青灯夜游
青灯夜游転載
2019-01-11 09:38:0324372ブラウズ

面接の前に企業の面接資料について詳しく読んでください。これはその後の面接に非常に役立ちます。今日は、2022 Xiaomi シニア PHP エンジニアの面接質問 (模擬試験問題) をお届けします。これは、一定の参考価値があります。皆さんのお役に立てればと思い、今すぐ共有します。

2022 Xiaomi シニア PHP エンジニアの面接の質問 (模擬試験用紙)

#関連おすすめ: 「2022 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 答えの分析:

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

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

A: Solr は新世代の全文検索コンポーネントです。 Lucene の検索は HTTP アクセスにも対応しており、PHP が Solr を呼び出すのにも非常に便利です。 B: MySQL では、フィールドに FULLTEXT インデックスを確立することでフルテキスト検索を実現できます。現在、MyISAM テーブルと InnoDB テーブルの両方が FULLTEXT インデックスをサポートしています。 C: Sphinx は SQL ベースの全文検索エンジンで、MySQL と組み合わせて全文検索を行うと、データベース自体よりも専門的な検索機能を提供できます。 D: Lucene に付属のバイナリ単語分割アナライザー CJKAnalyzer は、単語分割が非常に高速で、一般的な全文検索のニーズを満たすことができます。

正解:

A

解答分析: Solr は新世代の全文検索ですLucene に基づいているので、Lucene より速いというのはナンセンスです:)

4. シングルトン モードの何が問題なのでしょうか?

A: シングルトン モードの目的は、グローバル環境内にクラスのインスタンスが 1 つだけ存在できるようにすることです。 B: シングルインタレスト モードでは通常、コンストラクターをプライベートに設定する必要があります 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. ボックス内の正規表現と一致するオプションは次のどれですか?

/.\123\d/A. **123B. ****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 は一致しますabcdeflmn in abcdeflmnghijklmn

正解: D

解答分析: D は貪欲一致であるため、一致結果は次のようになります。 abcdeflmnghijklmn

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

A: ついに

B: 試してみる
C: 捕まえる
D: どこでも

正解: A

回答分析: try は、finally に戻り後も実行され続けます。finally にも return がある場合、最終的な戻り値は、finally に返される値になります。

14. NOSQL に関する次の記述は間違っています:

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

B: MongoDB は CAP 定理で AP をサポートし、MySQL は CAP で 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コマンドを実行しますか?

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 に 1 分ごとに実行されます。B: 1:04 に 3 回ごとに実行されます。 'クロック 毎週水曜日 1 分ごとに実行 C: 要件を満たす D: 毎日 1:04 に 3 分に 1 回実行

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

グローバル テーブル、システム内のすべてのモジュールが依存する可能性のあるいくつかのテーブルは、各ライブラリに保存されます。
B フィールドの冗長性。「注文テーブル」に「販売者 ID」を保存する一方で、販売者の「名前」フィールドも冗長であるため、注文の詳細を照会するときに「販売者ユーザー テーブル」を照会する必要はありません。
C マスター/スレーブ レプリケーションは、データベースの読み取りと書き込みを分離します。
D データ同期。データベース A の tbl_a テーブルはデータベース B の tbl_b に定期的に関連付けられ、指定されたテーブルをスケジュールされた間隔でマスターからスレーブに同期できます。

正解: C

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

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

A.Select は Epoll よりも高速です
B.nginx は select モデルを使用します
C.apache は select と epoll の間の切り替えをサポートします
D epoll はより優れたサポートを可能にします。同時実行性

正解:D

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

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

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

正解。 :C

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

関連する推奨事項:

1、2018 ~ 2022 年のフロントエンド JavaScript 面接の質問 (コレクション)

2 , フロントエンドインタビュー江湖

# 上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

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