PHPer、Laravel面接で遭遇する可能性のある質問と答え

4014 ワード

最近コミュニティの中で1篇の文章が最も多くのプログラム猿の関心を引き起こして、Laravel、PHPerの面接で出会うかもしれない问题を见て、评论区の多くの友达を见て难しく倒れて、いくつかの问题に対して同様に私を倒すことができなくて(実はたくさんあります)、周末に暇があるうちに、また総括して整理して、ついでに1波の问题に答えに来ました.個人の技術レベルが限られているため、答えにばらつきがあるかもしれませんが、ご指摘を歓迎します.
PHPモジュール
  • PHP 7とPHP 5の違いは、具体的にどのような新しい特性が多いですか?
  • パフォーマンスが2倍に向上
  • 結合比較演算子(<=>)
  • スカラータイプ宣言
  • 戻りタイプ宣言
  • try...catch多条件判定を増加し、より多くのErrorエラーは異常処理
  • を行うことができる.
  • 匿名クラスは、new classによって匿名クラスをインスタンス化することをサポートしています.これは、いくつかの「使用後焼却」の完全なクラス定義
  • に代わることができます.
  • ...詳細は記事の下部リンクPHP 7の新しいプロパティ
  • を参照してください.
  • なぜPHP 7はPHP 5より性能が向上したのですか?
  • 変数記憶バイト減少、メモリ使用量減少、変数操作速度向上
  • 配列構造を改善し、配列要素とhashマッピングテーブルを同じメモリに割り当て、メモリ占有率を低減し、cpuキャッシュヒット率
  • を向上させる.
  • は関数の呼び出しメカニズムを改善し、パラメータ伝達の一環を最適化することによって、いくつかの命令を減少させ、実行効率を高めた.

  • Laravelモジュール
  • サービスプロバイダは何ですか?

  • サービスプロバイダは、すべてのLaravelアプリケーションのブート起動の中心であり、Laravelのコアサーバ、登録サービスコンテナバインド、イベントリスニング、ミドルウェア、ルーティング登録、および私たちのアプリケーションは、サービスプロバイダのブートによって起動されます.
  • IoC容器は何ですか?

  • IoC(Inversion of Control)は「制御反転」と訳され、「依存注入」(DI)とも呼ばれる.「制御反転」とは?オブジェクトAの機能はオブジェクトBに依存するが、制御権はオブジェクトAによって制御され、制御権が逆転されることから「制御反転」と呼ばれ、「依存注入」はIoCを実現する方法であり、IoC容器が運転中にある依存関係を動的にオブジェクトに注入することである.
    その役割は簡単に言えば依存関係注入方式を利用して,複雑なアプリケーションを互いに協力する対象に分解し,問題解決の複雑さを低減し,アプリケーションコードの低結合,高拡張を実現することである.
    Laravelのサービスコンテナは、クラスの依存性を管理し、依存注入を実行するためのツールです.
  • Facadesって何ですか?

  • Facadesは、IoCコンテナに登録されているクラスにアクセスするための「static」(静的)インタフェースを提供する設計モードです.手動で注入または構成する必要がある長いクラス名を覚えることなく、簡単で覚えやすい構文を提供します.また,PHPダイナミックメソッドの独特な使い方により,テストも非常に容易になった.
  • Contractとは何ですか?

  • Contract(契約)は、laravel定義フレームワークが提供するコアサービスのインタフェースである.ContractとFacadesには本質的な違いはなく、インタフェースを低結合し、より簡単にする役割を果たしています.
  • 注入に依存する原理?

  • これは説明しないでしょうが、これはIoC容器を理解する前提です.
  • Composerとは何ですか.動作原理は何ですか.

  • ComposerはPHPの依存管理ツールです.開発した拡張パッケージをpackagistからorg composerウェアハウスは、アプリケーションにダウンロードされ、依存関係とバージョン管理を宣言します.
    キャッシュ
  • Redis、Memecachedの違いは何ですか?
  • Redisは、String、Hash、List、Set、Sorted Setなど、より豊富なデータストレージタイプをサポートします.Memcachedは簡単なkey-value構造のみをサポートします.
  • Memcached key-valueストレージは、Redisがhash構造を採用してkey-valueストレージを行うよりもメモリ使用率が高い.
  • Redisはトランザクションの機能を提供し、一連のコマンドの原子性
  • を保証することができる.
  • Redisはデータの永続化をサポートし、メモリ内のデータをディスクに保持できる
  • Redisはシングルコアのみを使用し、Memcachedはマルチコアを使用することができるので、平均して各コア上のRedisは、小さなデータを格納する際にMemcachedよりも性能が高い.

  • Redisはどのように持続化を実現しますか?
  • RDBは永続化され、redisのメモリ内の状態をバックアップデータベースの状態に相当するハードディスクに保存します.
  • AOF永続化(Append-ONly-File)、AOF永続化はRedisサーバロックによって実行される書き込み状態を保存することによってデータベースを記録する.バックアップデータベースが受信したコマンドに相当し、AOFに書き込まれたコマンドはすべてredisのプロトコル形式で保存されます.


  • データベース#データベース#
  • インデックスとは何ですか.役割は何ですか.一般的なインデックスタイプはどれらがありますか?Mysqlはインデックスの原則を創立しますか?

  • インデックスは、データテーブル内のすべてのレコードに対する参照ポインタを含む特殊なファイルで、本のディレクトリに相当します.その役割は、データの検索効率を向上させることです.一般的なインデックスタイプには、プライマリ・キー、ユニーク・インデックス、複合インデックス、全文インデックスがあります.
  • インデックス作成の原則
  • 最左接頭辞原理
  • インデックス
  • として、分割度の高い列を選択する.
  • できるだけインデックスを拡張し、新しいインデックス
  • を作成しないでください.
  • 高同時処理はどのように処理しますか?
  • キャッシュ
  • を使用
  • データベースを最適化し、データベースの使用効率を向上させる
  • 負荷等化

  • PHPのデザインモデルはあまり言わないが、SOLIDのデザイン原則はPHPer一人一人が身につけなければならない.
    その他の質問
    PHPerのよくある面接問題を残して、大神たちに解答してもらいました.
  • 分庫分表はどのように
  • を設計します
  • MySQLデッドロックの処理方法
  • 閉包に対する理解について話します
  • PHPメモリ回収機構
  • PHPメモリオーバーフローの問題を解決する方法
  • データベース最適化方法
  • Laravelの動作原理
  • の概要
  • Laravelルーティング実装原理
  • cookieとsessionは区別して、sessionはサーバーのどこに保存しますか?サービス側はクライアントのクッキーをどのように取得しますか?
  • サーバクラスタ構築、負荷等化、逆エージェント
  • サーバ共通コマンド
  • PS:PHPer面接で注目されている技術力はほんの一部で、あなたの内駆力、思考力、表現力に注目する部分もあります.実は最も注目しているのはあなたが妹かどうか、あなたの颜の値とあなたが独身かどうかです!!!
    答えはGitHubに置いてあります.皆さん、StatとPR.転送ドアを歓迎します.https://github.com/todayqq/ca...
    コードワードは容易ではありません.あなたのいいねを残してください.
    皆さん、私の微信を加えてください:JINCHAOCHAO0220 、あなたと一緒に交流して、一緒に成長することを期待しています!
    参考記事
  • php 7新特性
  • 浅談IOC-IOCとは何かをはっきり言います
  • RedisとMemcachedの違い
  • Redis持続化
  • Laravel中国語ドキュメント
  • MySQLインデックスの原理と遅いクエリーの最適化