PHPインタビューの概要

不言
リリース: 2023-03-24 15:22:02
オリジナル
1548 人が閲覧しました

この記事は、PHPに関するインタビューの概要を紹介するものであり、必要な友人に参考にしていただけるようにしました。

PHP の記事には、面接でよくある基本的な質問と高度な質問がいくつかまとめられています。

### 基本

- Get と POST の違い
- 一重引用符と二重引用符の違い
- isset と empty の違い
- echo、print_r、print、var_dump の違い
- MVC とは?
- 値渡しと参照渡しの違いは何ですか?
- Cookieとセッションの違いと関係

> 1. Cookieはクライアント(ブラウザ)側にあり、セッションはサーバー側にあります
> 2. セッションはCookieよりも安全です
> 3. データは保存されます。単一の Cookie で 4K を超えることはできません
> 4. セッションは Cookie に基づいています。ブラウザが Cookie を無効にすると、セッションも無効になります (ただし、URL でセッション ID を渡すなど、他の方法でも無効になります)。 ### 上級記事

- S.O.L.I.D の設計原則の簡単な説明

- | -
--- | --- ---
SRP には、変更の理由が 1 つだけあります。
OCP | 拡張中にクラスの動作を変更する |
ISP インターフェイス分離の原則 |
DIP を使用して派生クラスを置換する逆転の原則 | 具体性ではなく抽象化に依存する

の実装 - PHP7 と PHP5 の違いは何ですか?

> 1. パフォーマンスが 2 倍向上しました
> 2. 結合された比較演算子 (<=>) を追加しました
> 3. `try ... catch` は複数条件の判定を追加し、より多くのエラー エラーを例外によって処理できるようになりました
> 5. 匿名クラスを追加し、新しいクラスを通じて匿名クラスのインスタンス化をサポートするようになりました。 「使用後に焼き付けられる」一部の完全なクラス定義を置き換えるために使用されます

- PHP5 と比較して PHP7 のパフォーマンスが向上しているのはなぜですか?

> 1. 変数のストレージバイトが削減され、メモリ使用量が削減され、変数の動作速度が向上します。
> 2. 配列構造が改善され、配列要素とハッシュマッピングテーブルが同じメモリに割り当てられます。メモリ使用量を削減し、変数の演算速度を向上させました
> 3. 関数呼び出しメカニズムを改善し、一部の命令を削減し、パラメータ転送プロセスを最適化することで実行効率を向上させました

- PHP のガベージについて簡単に説明します。コレクション メカニズム (GC)

> PHP バージョン 5.3 より前では、PHP のすべての変数は `zval` と呼ばれる変数コンテナーに格納されていました。変数が参照されると、参照カウントは +1 されます。 . 変数の参照数が 0 になると、PHP のこの変数はメモリ上で破棄されます。
>
> ただし、参照カウントの循環参照の場合、参照カウントは 0 に減らず、メモリ リークが発生します。
>
> バージョン 5.3 以降、次の最適化が行われました。
>
> 1. ルート バッファーがいっぱいになった後にのみリサイクル サイクルが開始されるわけではありません。 > 2. 循環参照の問題を解決できます。
> 3. メモリ リークを常にしきい値未満に抑えることができます。

詳細については、PHP マニュアル [ガベージ コレクション メカニズム](http://docs.php.net/manual/zh/features.gc.performance-considerations.php) をご覧ください。

- PHP のメモリ オーバーフローの問題を解決する方法

> 1. PHP スクリプトのメモリ割り当てを増やす
> 2. 適切なタイミングで変数参照を破棄します

> 3. データをバッチで処理します

と Memecached の違いは何ですか?

> 1. Redis は、文字列、ハッシュ、リスト、セット、ソート セットなど、より豊富なデータ ストレージ タイプをサポートします。 Memcached は単純なキーと値の構造のみをサポートします。
> 2. Memcached のキーと値のストレージは、キーと値のストレージにハッシュ構造を使用する Redis よりもメモリ使用率が高くなります。
> 3. Redis は、一連のコマンドのアトミック性を保証できるトランザクション機能を提供します
> 4. Redis はデータの永続性をサポートし、データをディスク上のメモリに保持できます
> 5. Redis はシングルのみを使用します。 Memcached は複数のコアを使用できるため、小規模なデータを保存する場合、各コアの Redis は Memcached よりも平均してパフォーマンスが高くなります。

- Redis はどのようにして永続性を実現しますか?

> 1. RDB の永続化。メモリ内の Redis の状態をハードディスクに保存します。これはデータベースの状態をバックアップするのと同等です。
> 2. AOF 永続性 (Append-Only-File)、AOF 永続性は、Redis サーバーのロック実行の書き込みステータスを保存することでデータベースを記録します。バックアップ データベースが受信したコマンドと同様に、AOF に書き込まれたすべてのコマンドは Redis プロトコル形式で保存されます。

### Web セキュリティ予防

- CSRF とは何ですか?それを防ぐにはどうすればよいでしょうか?

> CSRF (クロスサイト リクエスト フォージェリ) は通常、「クロスサイト リクエスト フォージェリ」と呼ばれ、攻撃者がユーザーの ID を盗み、サーバーを欺いて攻撃リクエストを完了させます。

予防措置:

1. 検証コードを使用します
2. 各リクエストにトークンを追加して検証します

- XSS とは何ですか?それを防ぐにはどうすればよいでしょうか?

> ユーザーの目的。

XSS 攻撃を防ぐ方法はたくさんあります。重要なのは、ユーザー入力データを決して信頼しないこと、ユーザー データのフィルタリングを常に維持することです。

- SQL インジェクションとは何ですか?それを防ぐにはどうすればよいでしょうか?

> SQL インジェクションとは、攻撃者が何らかの方法でサーバーを欺き、実行されるべきではない SQL が実行されることです。

SQL インジェクションの一般的なシナリオ

1. 大量のジャンク データがデータベースに挿入され、サーバーの動作が遅くなり、クラッシュします。
2. SQL インジェクションを使用してアプリケーションのプライベート データを公開する

予防措置:

1. ユーザー データをフィルタリングし続ける
2. SQL の動的アセンブリを使用しない
3. 検証コードなどを追加するはい、個人データは暗号化されており、プレーン テキストでの保存は禁止されています

### 詳細情報

- [3 年間の PHPer のインタビュー概要](http://coffeephp.com/articles/4?utm_source=laravel-china.org) )
- [ガベージリサイクルメカニズム](http://docs.php.net/manual/zh/features.gc.performance-considerations.php)
- [S.O.L.I.D オブジェクト指向設計](https://laravel-china .org/articles/4160 /solid-object-owned-design-and-programming-oodoop-notes?order_by=created_at&)
- [IOC についての簡単な説明 -- IOC とは何かについて説明](http://www.cnblogs .com/DebugLZQ/archive/ 2013/06/05/3107957.html)
- [Redis と Memcached の違い](https://www.biaodianfu.com/redis-vs-memcached.html)
- [CSRF攻撃と防御](https://www.cnblogs.com/phpstudy2015-6/p/6771239.html)
- [XSS クロスサイト スクリプティング攻撃](
https://www.cnblogs.com/phpstudy2015-6 /p/6767032.html#_label9)

関連おすすめ:

2017年phpの古典的な面接の質問

2017年最新のPHPの古典的な面接の質問まとめ

phpの面接の質問まとめ

以上がPHPインタビューの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート