ホームページ  >  記事  >  バックエンド開発  >  PHP面接の知識ポイントのまとめ

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

不言
不言オリジナル
2018-07-14 11:41:381547ブラウズ

この記事は、主に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 までご連絡ください。