ホームページ >バックエンド開発 >PHPチュートリアル >2017 年の PHP 面接の質問と回答の最も包括的な要約

2017 年の PHP 面接の質問と回答の最も包括的な要約

黄舟
黄舟オリジナル
2018-05-14 14:14:3415677ブラウズ

最近、インターネットで多くの友人が PHP の面接にどう対処すればよいかを尋ねているのを目にしました。これは、実務経験や実践的なプロジェクトを持つ友人にとっては問題ありませんが、PHP を学んだばかりの友人にとっては、PHP の面接は非常に重要なステップです。 , そこで今日は、PHP 中国語 Web サイトで、PHP 面接の質問の概要を説明します。その多くは、面接中に多くのプログラマーが遭遇します。お役に立てば幸いです!

パート 1: PHP の基本的な面接の質問

1. PHP 言語の主な利点の 1 つはクロスプラットフォームです。

PHP の実行環境の最適な組み合わせは、Apache+MySQL+PHP です。この実行環境は、さまざまなオペレーティング システム (Windows、Linux など) 上で構成でき、オペレーティング システムによって制限されません。クロスプラットフォームと呼ばれています

2. あなたが習得した Web フロントエンド技術を教えてください。

DIV+CSS Web ページレイアウト、JavaScript、jQuery フレームワーク、Photoshop 画像処理に精通しています

3. 現在、MVC の 3 層構造はプログラミングでよく使用されます。利点は何ですか?

MVC の 3 つのレイヤーは、それぞれビジネス モデル、ビュー、コントローラーを指します。コントローラー レイヤーは、データを処理するためにモデルを呼び出し、表示のためにデータをビュー レイヤーにマップします。 ① コードの再利用性を実現し、コードの冗長性を回避します。 ② M と V の実装コードを分離し、同じプログラムで異なる式を使用できるようにします

4. JSON データ形式について理解していますか?

JSON (JavaScript Object Notation) は、json データ形式が固定されており、複数の言語でのデータ転送に使用できます

json 形式を処理する PHP の関数は、 json_decode(string $json [, bool $assoc]) は、JSON 形式の文字列を受け入れ、それを PHP 変数に変換します。パラメータ json は、デコードされる JSON 文字列形式の文字列です。 assoc このパラメータが TRUE の場合、オブジェクトの代わりに配列が返されます。

Json_encode: PHP 変数を JSON 形式に変換します

5. AJAX の利点は何ですか?

ajax は、JavaScript または JQuery フレームワークを通じて実装できる非同期送信テクノロジであり、部分更新を実現します。これにより、サーバーへの負荷が軽減され、ユーザー エクスペリエンスが向上します

6。プログラムの実行効率を向上させるには?

① SQL ステートメントを最適化し、クエリ ステートメントで select * を使用しないようにし、どのフィールドを使用してテーブル接続の代わりにサブクエリを使用するかを減らします。

② データ テーブル

③ プログラムで頻繁に使用されるデータのキャッシュを生成します。 (関数の「パラメータ」と「戻り値」に注目してください) ①array() は配列を作成します;
②count() は配列内の要素の数を返します

③array_push( ) 1 つ以上の要素を配列の末尾にプッシュします (スタックにプッシュします)。

array_combine

() 2 つの配列を結合して新しい配列を作成します。

array_reverse() は配列を逆の順序で返します。

⑦array_unique() は配列内の重複した値を削除します。

⑧in_array() は、指定された値が配列内に存在するかどうかを確認します。

8. PHP で文字列を処理するためによく使用される関数?

①trim()は文字列の両側の空白文字とその他の文字を削除します。

substr_replace()は文字列の一部を別の文字列に置き換えます。

③substr_count()は数をカウントします。

④substr() は文字列の一部を返します。

⑥strtoupper() は文字列を大文字に変換します。 ;

⑦strtr() は文字列内の特定の文字を変換します。

⑧strrchr() は別の文字列内の最後の文字列を検索します。別の文字列の最初の出現 (大文字と小文字を区別します); strrev() は文字列の長さを返します; str_replace() は文字列内の一部の文字を置き換えます (大文字と小文字を区別します); print() は 1 つまたはより多くの文字列、explore() は文字列を配列に分割します、is_string() は変数が文字列であるかどうかを検出します、strip_tags() は文字列から HTML タグを削除します

パート 2: PHP 面接の質問のデータベース部分

1. 一般的な

リレーショナル データベース 管理システム製品とは何ですか?

答え: Oracle、SQL Server、MySQL、Sybase、DB2、Access など。 2. トランザクションとは何ですか?そしてその特徴は?

答え: トランザクション: 一連の

データベース操作

であり、データベース アプリケーションの基本的な論理単位です。

トランザクションの特性: (1) 原子性: つまり不可分性。トランザクションはすべて実行されるか、まったく実行されないかのどちらかです。

(2) 一貫性または文字列化可能性。トランザクションの実行により、データベースは 1 つの正しい状態から別の正しい状態に変換されます

(3) 分離。トランザクションが正しくコミットされるまでは、トランザクションによるデータの変更を他のトランザクションに提供することはできません。

(4) 永続性。トランザクションが正しく送信されると、トランザクションの送信後に他のエラーが発生した場合でも、トランザクションの処理結果はデー​​タベースに永続的に保存されます。

または次のように理解してください:

トランザクションは、論理的な作業単位として結合された SQL ステートメントのグループです。ステートメント操作が失敗すると、操作全体が失敗し、その後の操作は元の状態にロールバックされます。操作前の状態、またはその上にノードがあります。何かが実行されるか実行されないかを確認するには、トランザクションを使用できます。グループ化されたステートメントをトランザクションとして考慮するには、アトミック性、一貫性、分離性、耐久性といった ACID テストに合格する必要があります

3. char と varchar の違いは何ですか?

答え: varchar は固定長型であり、varchar は可変長型です。 それらの違いは次のとおりです。 char(M) 型のデータ列、各値は M バイトを占有します。特定の長さが M より小さい場合、MySQL は右側にスペース文字を埋め込みます。 (パディングスペース文字は検索操作中に削除されます。) varchar(M) タイプのデータ列では、各値はその長さを記録するのに十分なバイトと 1 バイトのみを占めます (つまり、合計の長さは L+1 バイトです) )。

4. Mysql ストレージ エンジン、myisam と innodb の違い。

答え: 簡単な表現: MyISAM は、頻繁なクエリを使用するアプリケーションに適しており、デッドロックがなく、小規模なデータ、小規模な同時実行に適しています
innodbトランザクションをサポートするストレージ エンジンは、挿入および更新操作が多いアプリケーションに適しています。適切に設計されている場合は、行ロックになります (最大の違いはロックのレベルにあります)。データと大規模な同時実行。

5. データテーブルのタイプとは何ですか

答え: MyISAM、InnoDB、HEAP、BOB、ARCHIVE、CSV など。 MyISAM: 完成度が高く、安定していて、管理が簡単で、読みやすいです。一部の関数 (トランザクションなど) はテーブルレベルのロックをサポートしていません。 InnoDB: トランザクション、外部キーおよびその他の機能、データ行ロックをサポートします。多くのスペースを占有し、全文インデックス作成などはサポートされていません。

パート 3: PHP 面接の質問 - オブジェクト指向

1. オブジェクト指向とは何ですか? (理解して答える)

答え: オブジェクト指向 OO = オブジェクト指向指向分析 OOA + オブジェクト指向設計 OOD + オブジェクト指向プログラミング OOP; 一般的な説明は、「すべてのものはオブジェクトである」であり、すべてのものは独立したオブジェクト (ユニット) とみなされ、独自の機能を完了できます。 C のように関数に分割されていません。 現在の純粋な OO 言語は主に Java と C# であり、C はプロセス指向です。

2. private、protected、public 修飾子のアクセス権を簡単に説明します。

答え: プライベート: プライベートメンバーにはクラス内でのみアクセスできます。 protected: 保護されたメンバー。クラスおよび継承されたクラス内でアクセス可能。

public: 公開メンバー、完全に公開されており、アクセス制限はありません。

3. ヒープとスタックの違いは何ですか?

答え: スタックはコンパイル中に割り当てられるメモリ空間であるため、スタックのサイズはコード内で明確に定義する必要があります。 ヒープはプログラムの実行中に動的に割り当てられるメモリ空間です。プログラムに従って、割り当てられるヒープ メモリのサイズはランタイムによって決定されます。

4. オブジェクト指向の特徴は何ですか?

答え: 主にカプセル化、継承、ポリモーフィズムが含まれます。 4 つの側面の場合は、抽象化を追加します。

5. コンストラクター、デストラクター、およびその機能とは何ですか?

答え: コンストラクター (メソッド) は、オブジェクトの作成後にオブジェクトによって自動的に呼び出される最初のメソッドです。これは宣言されたすべてのクラスに存在し、特別なメンバー メソッドです。その機能は、いくつかの初期化タスクを実行することです。 Php では、construct() を使用してコンストラクター メソッドを宣言しますが、宣言できるのは 1 つだけです。

デストラクター (メソッド) は、コンストラクターの逆です。オブジェクトが破棄される前に、オブジェクトによって自動的に呼び出される最後のメソッドです。これは PHP5 で新しく追加されたコンテンツで、ファイルを閉じたりメモリを解放したりするなど、オブジェクトを破棄する前に特定の操作を実行するために使用されます。

概要:

PHP 面接の質問は企業ごとに異なります。ここでは、友人向けによくある PHP 面接の質問をまとめましたが、PHP 面接の質問の概要に基づいて質問を要約することもできます。自分自身を拡張し、拡張してください!


関連する推奨事項:

1.

2017 採用シーズン: PHP 面接の質問の超まとめ!

2.PHPの面接で最もよく聞かれる11の質問

3.PHPの面接の質問の共有

以上が2017 年の PHP 面接の質問と回答の最も包括的な要約の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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