検索
ホームページバックエンド開発PHPチュートリアルPHP 面接の質問に関する概念的な質問の最新の概要

#この記事は、PHPインタビューの質問に対する概念的な質問の最新の要約を共有しています。特定の参照値があります。困っている友人はそれを参照できます。

関連する推奨事項: 「PHP 面接の質問と応募に関する質問の最新概要

1. HTTP ステータス メディア ステータス コード

  • 302 の意味: 一時転送は成功し、要求されたコンテンツは新しい場所に転送されました。
  • 401: 許可されていません。
  • 403: アクセスが禁止されています。
  • 500: サーバー内部エラー

2. 値渡しと参照渡し

  • 値渡し: 実際のパラメータが渡される 値は仮パラメータに割り当てられ、仮パラメータへの変更は実際のパラメータの値には影響しません。
  • 参照渡し: 実パラメータのアドレスを仮パラメータに渡します。実パラメータと仮パラメータは同じ記憶領域を指します。行パラメータを変更すると、実パラメータの値に影響します。
#作成タイプ: 従業員が原材料として機能 (プロトタイプ、ファクトリー、シングルトン、ジェネレーター、抽象ファクトリー)

構造タイプ: アセンブリをノックアウトすることです (アダプター、ブリッジ、フライウェイト、外観、エージェント、組み合わせ、装飾)

行動タイプ: 観察を妨げるためにモデルを皿に取り付けるように命令されます (メモ、チェーン) (責任、コマンド、イテレータ、メディエータ、ステート、テンプレート メソッド、ビジター、オブザーバー、ストラテジ)

通常、プロジェクトは次のもので構成されます。チームが開発し、全員が書いたコードをバージョン サーバーに送信し、プロジェクト リーダーがバージョンに応じてコードを管理することで、バージョン管理が容易になり、開発効率が向上し、必要なときに古いバージョンを確実に返却できるようになります。

どうすれば防ぐことができますか?

回答: htmlspecialchars() 関数を使用して、送信されたコンテンツをフィルターし、文字列内の特殊記号を具体化します。

6. CGI、FastCGI、PHP-FPM の関係図

リクエストがindex.phpの場合、Webサーバーはこのリクエストを受信した後、対応するCGIプログラムを開始します。これがPHPパーサーです。次に、PHP パーサーは php.ini ファイルを解析し、実行環境を初期化し、リクエストを処理し、処理結果を CGI で指定された形式で返し、プロセスを終了し、Web サーバーは結果をブラウザに返します。これは完全な動的 PHP Web アクセス プロセスです。 PHP 面接の質問に関する概念的な質問の最新の概要

PHP 面接の質問に関する概念的な質問の最新の概要

Web サーバー:
    一般的には、Apache、Nginx、IIS、Lighttpd、Tomcat などのサーバーを指します。
  • Web アプリケーション:
  • 一般に、PHP、Java、Asp.net などのアプリケーションを指します。
  • CGI:
  • は、Web サーバーと Web アプリケーションの間でデータを交換するためのプロトコルです。
  • FastCGI:
  • CGI と同じ通信プロトコルですが、CGI よりも効率が最適化されています。同様に、SCGI プロトコルは FastCGI に似ています。
  • PHP-CGI:
  • は、Web サーバーが提供する CGI プロトコルに対する PHP (Web アプリケーション) のインターフェース プログラムです。
  • PHP-FPM:
  • は、PHP (Web アプリケーション) が Web サーバーに提供する FastCGI プロトコルのインターフェイス プログラムであり、比較的インテリジェントなタスク管理も提供します。
7. MVC

MVC は開発モデルであり、主に 3 つの部分に分かれています: モデルである
  • m(model) はデータの操作を担当し、ビューである
  • v(view) はフロント デスクの表示を担当します。
  • c(controller) 、つまりビジネス ロジックを担当するコントローラー

8. PHP のガベージ コレクション メカニズム

PHP では、メモリを自動的に管理し、不要になったオブジェクトを消去します。 PHP は、参照カウントのガベージ コレクション メカニズムを使用します。各オブジェクトには参照カウンタが含まれており、オブジェクトに参照が接続されると、カウンタは 1 ずつ増加します。参照がリビング スペースから出るか、NULL に設定されると、カウンターは 1 ずつ減らされます。オブジェクトの参照カウンタがゼロになると、PHP はオブジェクトが占有しているメモリ空間を解放します。

9. CLI パターンのライフサイクル


##モジュールシャットダウンフェーズ##

10. php-fpm の動作仕組み

FastCGI は、Web サーバー (Nginx、Apache など) と処理プログラム (PHP など) の間の通信プロトコルです。 a アプリケーション層の通信プロトコル。 php-fpm は、PHP FastCGI オペレーティング モードのブロッキング シングル スレッド モデル プロセス マネージャーです。単一のマスターとマルチワーカー構造を持っています。同じワーカー プロセスは一度に 1 つのリクエストのみを処理できます。 PHP はリクエストを処理した後、解析結果を FastCGI プロトコルを通じて Web サーバーに転送し、Web サーバーはそれをユーザーに返します。

#基本実装

PHP-FPM は fast-cgi の実装であり、マスター プロセスやワーカー プロセスなどのプロセス管理機能を提供します。

    Master はソケットを作成および監視し、複数のワーカー プロセスをフォークし、共有メモリを通じてワーカーのステータスを取得し、シグナルを通じてワーカー プロセスを制御します
  • ワーカーはリクエストを自由に受け入れます
  • ##ワーカー—リクエストの処理

#ワーカー プロセスは継続的にリクエストを受け付けます。リクエストが到着すると、FastCGI プロトコルのデータを読み取って解析します。解析が完了すると、PHP スクリプトが実行され、リクエストは実行完了後に閉じられます。各ワーカーがリクエストを処理する手順は次のとおりです。

リクエストの待機: ワーカー プロセスは、リクエストを待機している fcgi_accept_request() でブロックされます。

    リクエストを解析する: fastcgi リクエストが到着すると、それはワーカーによって受信され、リクエスト データが完全に到着するまでリクエスト データの受信と解析が開始されます。
  1. リクエストの初期化: php_request_startup() を実行します。
  2. PHP スクリプトを実行します。
  3. リクエストを閉じます。
  4. ワーカー プロセスの構造には、ワーカーが現在いるステージ fpm_scoreboard_proc_s->request_stage を記録するパラメーターがあります。リクエスト中に、この値は次の値に設定されます。

FPM_REQUEST_ACCEPTING: リクエストフェーズを待機しています。

    FPM_REQUEST_READING_HEADERS: fastcgi リクエスト ヘッダー フェーズを読み取ります。
  • FPM_REQUEST_INFO: リクエスト情報の取得フェーズ。このフェーズでは、リクエストされたメソッド、クエリ文字列、リクエスト URI およびその他の情報が各ワーカー プロセスの fpm_scoreboard_proc_s 構造体に保存されます。この操作はマスター プロセスでも操作されるため、ロックが必要です。この構造。
  • FPM_REQUEST_EXECUTING: PHP スクリプト フェーズを実行します。
  • FPM_REQUEST_END: 使用されません。
  • FPM_REQUEST_FINISHED: リクエストの処理が完了しました。
  • master – プロセス管理

master は fpm_run() を呼び出した後に戻らなくなり、イベント ループに入ります。それ以降、master は常にいくつかのイベントが処理されます。これらのイベントを詳細に分析する前に、まず Fpm の 3 つの異なるプロセス管理方法を紹介します。使用する特定のモードは、conf 設定の pm を通じて (pm=dynamic など) 指定できます。

静的モード (静的): この方法は比較的単純です。起動時に、マスターは pm.max_children 構成に従って、対応する数のワーカー プロセス (ワーカー プロセスの数) をフォークアウトします。固定されています。

    動的モード (動的): このモードはより一般的に使用され、Fpm が開始されると、pm.start_servers 構成に従って特定の数のワーカーが初期化されます。動作中に、アイドル状態のワーカーの数が設定された pm.min_spare_servers の数よりも少ないことをマスターが検出した場合 (リクエストが多すぎてワーカーが処理できないことを示します)、マスターはワーカー プロセスをフォークしますが、総数はワーカーの数は pm.max_children を超えることはできません。マスターがアイドル状態のワーカーの数が pm.max_spare_servers を超えていることを検出した場合 (アイドル状態のワーカーが多すぎることを示します)、リソースの占有が多すぎることを避けるために一部のワーカーを強制終了します。マスターはこれら 4 つの値を使用して数を動的に制御します労働者の。
  • オンデマンド モード (オンデマンド): このモードは従来の CGI に非常に似ています。起動時にワーカー プロセスを割り当てません。リクエストがあると、ワーカー プロセスをフォークするようにマスター プロセスに通知します。リクエストが到着したら、子プロセスをフォークして処理します。ワーカーの総数が pm.max_children を超えていないこと ワーカープロセスは処理完了後すぐに終了せず、アイドル時間が pm.process_idle_timeout を超えた時点で終了します。
  • マスター プロセスは、fpm_event_loop() イベント ループに入ります。このメソッドでは、マスターは、マスターによって登録されたいくつかの IO イベントとタイマー イベントを周期的に処理します。イベントがトリガーされると、特定のハンドラーが実行されます。処理のために呼び戻されました。

11. メモリ割り当てプロセス

12. PHP 配列の実装

PHP 配列の基礎となる実装はハッシュ テーブル (ハッシュテーブルとも呼ばれます) です。ハッシュ テーブルは、キー (Key) 位置データ構造のキーと値の間にマッピング関数があり、マッピング関数によって取得されたハッシュ値は、キーワードを比較することなく、キーに従って対応する値に直接インデックス付けされます。 、ハッシュ値は考慮されません。列の競合、ハッシュ テーブルの検索効率は非常に高く、時間計算量は O (1) です。

13. 依存関係の注入

概念: サービスが依存する他のサービスがサービス自体によって作成されるのではなく、外部から渡される方法を指します。

それを達成するにはどうすればよいですか?回答: 一般に、リフレクションを使用して実装されます。

どのような問題を解決できますか?回答: サービス モジュール間の結合を減らします。コードを記述するときに、外部サービスの特定の実装を考慮する必要はありません。インターフェイスに基づいてサービスを使用するだけで済みます。

14. オブジェクト指向

概念: オブジェクト指向はプログラムの設計手法であり、プログラムの再利用性を向上させ、プログラムの構造をより明確にします。

主な機能: カプセル化、継承、ポリモーフィズム。

5 つの基本原則: 単一責任の原則、オープンとクローズの原則、置換の原則、依存性の原則、インターフェイス分離の原則。


この記事は、LearnKu.com Web サイトに初めて掲載されました。

関連おすすめ: 「2021 PHP 面接質問まとめ (集)

フェーズ 呼び出し関数 Function
モジュール初期化フェーズ php_module_startup() 主に PHP フレームワークを実行します。 zend エンジンの初期化操作
リクエストの初期化フェーズ php_request_startup() fpm の場合、ワーカー プロセスで読み取られ、その後の段階で解析されます。データのリクエスト
スクリプト実行ステージ php_execute_script() PHP 構文を解析し、抽象構文ツリーを生成します
リクエストシャットダウンフェーズ php_request_shutdown() リクエスト終了時に実行
php_module_shutdown() プロセス終了時に実行

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

声明
この記事はlearnkuで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール