ホームページ  >  記事  >  バックエンド開発  >  PHP に関する知識と経験を共有する

PHP に関する知識と経験を共有する

零到壹度
零到壹度オリジナル
2018-04-14 17:45:071239ブラウズ

この記事の内容は、PHP インタビューに関する知識と経験を共有することです。必要な友人はそれを参照できます

  • CORS (クロスオリジンリソース共有) 、クロスドメインリソース共有。これにより、サイト間のリソース要求が可能になります。クライアントは、リソースをリクエストするために特定のメソッド (xmlhttprequest など) を使用する必要があり、サーバーはクロスドメイン リソース リクエストもサポートする必要があります

memcache と redis の類似点と相違点

  • マルチスレッド、高スループットを使用でき、大規模な訪問に適しています

  • memcache は単純なキー/値構造のみをサポートします

  • memcache はデータを保持できず、データの再起動後にのみ使用できます。 loss

  • memcache はマルチスレッド操作をサポートしているため、データの整合性の問題を考慮する必要があります。Cas (チェック アンド セット) オプティミスティック ロックが使用されます

  • redis は単一形式であるため、秩序ある操作を保証できます。

  • redis は、キー/値、リスト、セット、zset、dict などのさまざまなデータ構造をサポートしています。

  • redis データは永続的に保存でき、データはディスクに保存でき、読み出すことができます。再起動時

  • redisはデータバックアップ、つまりマスター/スレーブモードでのデータバックアップをサポートします

Webプロジェクト向けの高同時実行ソリューション

  • 静的HTML、一般的に使用されるがめったに更新されないデータを静的化します

  • 画像アプリケーションサーバーへの影響を避けるためにサーバーを分離すると同時に、

  • データベースクラスター、ライブラリテーブルハッシュ


  • データベースに対して個別の構成の最適化、キャッシュ設定などを実行できます。クラスターは読み取りと書き込みの分離を実現し、データベースを向上させることができます。応答速度は通常、1 つのマスターと複数のスレーブ、または x マスターと y スレーブです。たとえば、書き込みを減らして読み取りを増やす場合、1 つのサーバーが書き込み操作専用になり、他のサーバーが読み取り操作に使用されます。これにより、読み取り/書き込みロックの影響を回避できます。ただし、書き込み操作の完了後、データを同期する必要があります。
    • データベースクラスターのもう1つの利点は、1つのデータベースサーバーがダウンしても、他のサーバーに完全なデータがまだ残っていることです
    • 分散データベースでは、システム内に複数のノードがあり、各ノードが異なるタスク機能を実行します。ノードがハングアップすると、対応する機能を完了できなくなります。
    • データベースクラスターと分散データベースの違い。 1 つのノードでタスクが完了するまでに 1 時間かかり、そのようなタスクが 10 個あり、ノードが 10 個あるとします。分散データベースは、サブタスクの依存関係に関係なく、タスクを 10 個のタスクに分割できます。すべてのタスクは 1 時間後に完了します。データベース クラスター内の各ノードは完全なタスクを完了でき、各ノードに平均 10 個のタスクを実行できるため、すべてのタスクが 1 時間後に完了します。
    • SQL最適化
    • テーブル内のデータが多すぎる場合は、テーブルを分割し、ハッシュマッピングを使用することを検討できます
    • インデックス最適化
    • キャッシュ
  • アクセスを改善する速度
  • 負荷分散、高同時実行性と大規模アクセスの問題を解決
  • CDN、ユーザーが最も近い CDN サーバーにアクセスして最速の応答を得ることが可能
  • データ圧縮
  • PHP
Magic Method

__set/__get はクラスに存在しない属性を処理します
  • __call/_callStatic は、クラスに存在しないメソッド/静的メソッドを呼び出すときにトリガーされます。 __callStatic 自体も静的メソッドとして宣言する必要があります
  • __toString オブジェクトを文字列出力に変換します
  • __invoke オブジェクトを実行する関数として使用します
  • require と include の違い

include関数: ファイルが読み取られ、内部のプログラムが実行されることを指定します。
  • require 関数: ターゲット ファイルの内容を読み取り、読み取られた内容で置き換えます。
  • include_once 関数: の実行中に。 script 指定したファイルをインクルードして実行します。この動作は include ステートメントと似ていますが、唯一の違いは、ファイルがすでにインクルードされている場合、再度インクルードされないことです。このステートメントの名前が示すように、このステートメントは 1 回だけインクルードされます。
  • require_once 関数: require ステートメントとまったく同じですが、唯一の違いは、ファイルが既にインクルードされているかどうかを PHP がチェックし、インクルードされている場合は、再び含まれることはありません。
  • include_once または require_once を使用すると、ファイルをロードする前に、ファイルがロードされたファイル テーブルにロードされているかどうかが最初に検索されるため、プログラムの効率が低下します
  • 存在しないファイルを含めると、生成されるだけですファイルが存在する場合、致命的なエラーが直接スローされ、スクリプトは停止します。 Include は条件付き包含関数であり、require は無条件包含関数です。つまり、include または require の外側の層に if 条件がある場合、if が false の場合、include はそれをインクルードせず、ファイルは true の場合にのみインクルードされますが、require は、次のいずれかに関係なくファイルをインクルードします。それは本当か嘘か

リターン時に括弧を使用できないのはなぜですか?

  • returnは関数ではなく単なる言語構造です。括弧で囲む必要はありません

  • 場合。戻り値にはパラメータが含まれていないため、null が返されます。また、この時点では括弧を含めることはできません。括弧を使用すると、解析エラーが発生します。変数への参照を返すときは、括弧を使用しないでください。それ以外の場合は、参照自体の代わりに返される参照の値になります

  • PHPの弱い型変数の仕組み

  • fast_cgi

php_fpm

php5 php7の違い

以上がPHP に関する知識と経験を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。