検索

PHP面接の知識ポイントのまとめ

Jul 14, 2018 am 11:41 AM
PHPインタビュー

この記事は、主にPHP面接のノウハウをまとめたもので、一定の参考価値があるものですので、皆さんにもシェアさせていただきますので、困っている友人は参考にしてください

#これをコピーして目次を作ります。詳しくは分からないので、リストにある質問をすべてゆっくり勉強するつもりです

PHP中国における面接のベストプラクティス

この倉庫は主に国内のPHP面接でよく聞かれる知識ポイントをまとめています。知識のポイントを的を絞って指摘しているだけなので、関連する情報を見つけて自分で体系的に勉強する必要があります。それが何であるかだけでなく、その理由とその背後にある原則についても理解していただければ幸いです。

対応するナレッジポイントに関する非常に体系的な情報をお持ちの場合は、リンクを追加するために PR してください。フォークの使用はお勧めしません。情報は随時更新されます。

あなたが現在次のような状況にある場合、この情報は非常に適しています:

  • 転職の準備をしているが、どこに行けばよいかわからないstart

  • テクノロジーにボトルネックが発生し、何を学べばよいかわかりません

  • #PHP を学ぶつもりですが、フィールドの深さがわからない

基本

  • 配列処理関数のほとんどを理解する

  • # #文字列処理関数 (mb_ シリーズ関数とは異なります)
  • & 引用、ケース分析との組み合わせ
  • ##== との違い===
  • isset と empty の違い
  • すべてのマジック関数を理解する
  • static 、$this、自己の差異
  • #プライベート、保護、パブリック、最終的な差異

  • ##OOP アイデア

  • ##抽象クラスとインターフェイスは別々に使用されます
  • Trait is What
  • echo、print、print_rの違い
  • __construct と __destruct の違い
  • static 関数 (クラスと関数の区別)
  • __toString() 関数
  • #一重引用符 ##'
  • と二重引用符
  • "

    違い

  • 一般的な HTTP ステータス コード、その内容意味301 404はどういう意味ですか

#高度な記事

  • オートロード、Composer の原則

  • セッション共有、生存時間

  • 例外処理

  • 各反復オブジェクトの方法

  • 操作オブジェクト $obj[key] の配列方法

  • オブジェクト $obj(123) を機能化する方法;

  • yield とは何か、使用シナリオを教えてください

  • # #PSR、PSR-1、2、4、7 とは

  • #クライアント IP とサーバー IP アドレスの取得方法
  • PHP 例外プロンプトを有効にする方法
  • 301 リダイレクトを返す方法
  • 拡張機能のインストール パスを取得する方法
  • 文字列と数値を比較する原理。0 から始まる 8 進数と 0x から始まる 16 進数に注意してください。
  • BOM ヘッダーとは何か、その方法削除するには
  • #MVC とは
  • # 依存関係注入の実装原理
  • #コマンドの実行方法非同期
  • # テンプレート エンジンとは何か、それが解決する問題、および実装原則 (Smarty、Twig、Blade)

  • チェーンの実装方法操作

    $obj->w()->m ()->d();
  • #Xhprof および Xdebug パフォーマンス デバッグ ツール使用

  • インデックス配列

    [1 , 2]

    連想配列
  • ['k1'=>1, 'k2'=>2]## の違いは何ですか?
  • 実践

    ##2 次元配列を指定して、特定のフィールドに従って並べ替えます

アップロード ファイルの種類を決定する方法 (例: jpg アップロードのみが許可されます)
  • 2 つの変数の値を交換するために一時変数を使用しないでください。
  • $a=1; $b=2;
  • =>

    $a=2; $b=1;

  • strtoupper 中国語を変換すると文字化けしてしまうのですが、どうすればよいですか?あなたはそれを解決しますか? php echo strtoupper('ab hello c');

  • ##Websocket、ロングポーリング、サーバー送信イベント (SSE) の違い
  • 「ヘッダーはすでに送信されました」エラーの意味と回避方法

#アルゴリズム

  • クイック ソート (手書き)

  • バブル ソート (手書き)

  • #二分探索 (理解)
  • #検索アルゴリズム KMP (理解)
  • #深さと幅優先探索 (理解)
  • #LRU キャッシュ削除アルゴリズム (Memcached がこのアルゴリズムを使用していることを理解してください)

  • データ構造の記事 (理解)

#ヒープとスタックの特性

  • キュー

  • ハッシュ テーブル

  • リンク リスト

  • 比較

  • #Cookie とセッションの違い

  • GET

    POST
  • include

    require
  • の違い
  • # の違い# #include_oncerequire_once の違い

  • Memcached と Redis の違い

    MySQL ストレージ エンジンと違い (MyISAM と Innodb の違いについては必ず尋ねられるでしょう)
  • HTTP と HTTPS の違い
  • Apache と HTTPS の違いNginx
  • define() と const の違い
  • トレイトとインターフェイスの違い、そしてトレイトが解決する問題点は何ですか?
  • Git と SVN の違い
  • データベース記事
  • MySQL
    • インデックス、ジョイントインデックス(ヒット条件)

    • サブデータベースとサブテーブル(水平サブテーブル) 、 垂直テーブル パーティション)

    • Partition

    • explain を使用して SQL パフォーマンスの問題を分析します各パラメータの意味を理解する

    • スロー ログ (何に使用するか、いつ必要になるか)

    • 理解するための重要なポイント typerowskey

    • CRUD

    • ##JOIN、LEFT JOIN 、RIGHT JOIN、INNER JOIN

    • UNION

    • GROUP BY COUNT WHERE 組み合わせケース

    • 一般的Now()、md5( )、concat()、uuid() などの MySQL 関数を使用しました。

    • 1:1 1:nn:nそれぞれに適用可能なシナリオ

    • トリガーとは何かを理解し、使用シナリオを教えてください

    • データベース最適化方法

  • MSSQL(理解)

    • 最新の 5 つのデータをクエリする

  • NOSQL

    • 永続性

    • マルチクロック データ型をサポート

    • 複数の CPU コアを利用可能

    • メモリ削減メカニズム

    • ClusterCluster

    • #サポート SQL
    • パフォーマンスの比較
    • ##サポート トランザクション
    • ##アプリケーション シナリオ

    • #Redis、Memcached、MongoDB

    • 比較と適用可能なシナリオ (次の次元から比較できます)

    • ##以前にどのような問題を解決するために何を使用しましたか?また、それを選択した理由は何ですか?

    • サーバーの章

CPU、メモリ、時間、システム バージョンおよびその他の情報の表示

  • find、grep してファイルを検索します

  • #awk でテキストを処理します
  • コマンドが置かれているディレクトリを表示します
  • # あなたは PHP を自分でコンパイルしたことがありますか? readline 関数をオンにする方法

  • PHP プロセスのメモリと CPU 使用率を確認する方法

  • PHP に拡張機能を追加する方法

  • PHP セッションの保存場所を変更し、INI 構成パラメータを変更する

  • 負荷分散の種類は何ですか? 使い慣れているものを選択してくださいそしてその原理を説明します

  • データベースのマスター/スレーブ レプリケーションの M-S 同期はどのように行われますか?押すか引くか?同期がずれてしまいますか?対処方法

  • データの可用性を確保する方法。データベースが削除された場合でも、数分程度のレベルで復元できます。あなたは何をしますか。

  • データベース接続が多すぎて最大値を超えています。アーキテクチャを最適化する方法。どのような都合から対応できるのでしょうか?

  • 502 考えられる原因は何ですか? 504 のトラブルシューティング方法は?

アーキテクチャの章

  • 部分的な運用と保守 (理解):

    • 負荷分散 (Nginx) 、HAProxy、DNS)

    • マスター/スレーブ レプリケーション (MySQL、Redis)

    • データ冗長性、バックアップ (MySQL 増分、完全原則)

    • #モニタリング チェック (生存性とサービス可用性の 2 つの側面)

    • ##MySQL、Redis、Memcached Proxy、クラスターの目的と原理
    • シャーディング
    • 高可用性クラスター
    • RAID
    • ## ソース コードのコンパイル、メモリのチューニング
    • キャッシュ
  • 作業中にキャッシュの必要性が発生した場合は、その理由を簡単に説明してください。
    • 検索ソリューション
  • パフォーマンス チューニング
  • 各次元のモニタリング ソリューション
  • ログ収集集中処理ソリューション
  • 国際化
  • データベース設計
  • 静的ソリューション
  • 一般的な PHP アプリケーション アーキテクチャ図を描く
  • フレームワーク

ThinkPHP (TP )、CodeIgniter (CI)、Zend (非 OOP シリーズ)
  • Yaf、Phalcon (C 拡張システム)
  • Yii、Laravel、 Symfony (純粋な OOP シリーズ)
  • Swoole、Workerman (ネットワーク プログラミング フレームワーク)
  • 比較フレームワークはいくつかの方向で異なります。
  • ##純粋な OOP かどうか

  • #クラス ライブラリのロード方法 (独自のオートロードを作成し、コンポーザー標準と比較)
    • #使いやすさの方向性(CI基本フレームワーク、Laravelは開発効率の高いフレームワークと基本コンポーネント)

    • ブラックボックス(C拡張システムと比較)

    • 実行速度 (例: Laravel は多くのものをロードします)

    • メモリ使用量

    • #デザインパターン
    • 単一ケース パターン (強調)

ファクトリ パターン (強調)

  • オブザーバー パターン(強調)

  • 依存性の注入 (強調)

  • デコレータ パターン

  • プロキシ モード

  • 複合モード

  • セキュリティ

  • SQL インジェクション

XSS と CSRF

  • 入力フィルタリング

  • Cookie セキュリティ

  • mysql_ システム関数を無効にする

  • データベースにユーザー パスワードが保存されている場合の安全性を確保するために行うべきこと

  • 検証コード セッションの問題

  • セキュリティで保護されたセッション ID (傍受後もシミュレートできないようにする)

  • ディレクトリ権限 セキュリティ

  • ローカル ファイルとリモート ファイルを含む

  • ファイル アップロード PHP スクリプト

  • #eval 関数実行スクリプト

  • disable_functions 高リスク関数を無効にする

  • FPM の独立したユーザーとグループ。各ディレクトリ 特定の権限

  • Hash と Encrypt の違いを理解する

上級レベル

  • PHP配列の基礎となる実装 (HashTable Linked list)

  • コピーオンライト原則、GC の場合

  • #PHP プロセス モデル、プロセス通信方法、プロセス スレッドの違い

  • yield の中心原則とは何ですか

  • PDO 準備原則

  • 違いは何ですかPHP 7 と PHP 5 の間

  • Swoole 適用シナリオ、コルーチン実装方法

フロントエンド記事

  • DOM ノード、属性をネイティブに取得

  • ##ボックス モデル
  • CSS ファイル、スタイル タグ、インライン スタイル属性の優先順位
  • HTML と JS の実行順序 (ページ JS を上から下へ)
  • JS 配列操作
  • 型判定
  • このスコープ
  • .map() とこの特定の使用シナリオの分析
  • Cookie の読み取りと書き込み
  • JQuery 操作
  • #Ajax リクエスト (同期、非同期差分) 乱数によるキャッシュ禁止
  • Bootstrap の利点は何ですか
  • クロスドメイン リクエストに対する N ソリューション
  • ##新しいテクノロジー (理解)

  • ES6
    • ##モジュラー

    • パッケージング

    • ビルド ツール

    • vue、react、webpack、

    • フロントエンド mvc

    • 最適化

  • ブラウザの単一ドメイン名の同時実行制限

    • 静的リソース キャッシュ 304 (If-Modified-Since および Etag 原則)

    • 複数の小さなアイコンを結合し、位置測位テクノロジーを使用してリクエストを削減します

    • 静的リソースが 1 つのリクエストに結合され、圧縮されます

    • CDN

    • 静的リソース遅延ロード技術、プリロード技術

    • キープアライブ

    • CSS は head に、JS は Tail にあります 最適化 (原則)

    • ネットワーク記事

IP アドレスから INT

  • 192.168.0.1/16 意味

  • DNS の主な機能は何ですか?

  • IPv4 と v6 の違い

  • ネットワーク プログラミング

    • TCP 3 ウェイ ハンドシェイク プロセス

    • TCP と UDP の違い、それぞれ適用可能なシナリオ

    • UDP の高可用性を確保する方法はありますか (理解)

    • TCP スティッキー パケットを解決するにはどうすればよいですか?

    • なぜハートビートが必要なのでしょうか?

    • 長い接続とは何ですか?

    • HTTPS はどのようにセキュリティを確保しますか?

    • ストリームとデータグラムの違い

    • プロセス間で通信するにはいくつかの方法がありますが、どれが最も速いでしょうか?

    • fork() 何が起こるでしょうか?

    API 章

    • RESTful とは

    • サポートされていない場合の使用方法DELETE 要求されたブラウザは DELETE と互換性があります 要求

    • 共通 API APP_ID APP_SECRET 内容メイン機能ですか?プロセスの説明

    • #API リクエストはデータが改ざんされていないことをどのように確認しますか?

    • JSON と JSONP の違い

    • データ暗号化と署名検証の違い

    • RSA とは何ですか

    • API バージョンの互換性への対処方法

    • 電流制限 (バレル、トークン バケット)

    • OAuth 2 は主にどのようなシナリオで使用されますか?

    • JWT

    • ##PHP

      json_encode(['key'=>123 ]);return json_encode([]); 違いは何ですか?解決方法

    ボーナス ポイント

    • 共通の言語機能とさまざまなシナリオでの適用性を理解します。

      • PHP VS Golang

      • #PHP VS Python

      • PHP VS JAVA

      #PHP 拡張機能の開発を理解する
    • C に堪能です
    • ステートメント

    この情報はどの企業にも向けられたものではなく、この情報があなたに与える影響については責任を負いません。 . 知りたいです。

    頑張ってください

    以上がこの記事の全内容です。皆様の学習にお役に立てれば幸いです。その他の関連コンテンツについては、お支払いください。 PHP 中国語 Web サイトに注意してください。

    関連する推奨事項:

    php Daniel が共有した: PHP コード記述仕様、包括的な概要


    PHP については、オブジェクト指向設計の 5 つの原則 (SOLID)

    以上がPHP面接の知識ポイントのまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

    PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

    PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

    PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

    session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

    session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

    PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

    PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

    セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

    データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

    PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

    PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

    セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

    SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

    ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

    APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

    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衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

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

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 最新バージョン

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)