PHP (PHP: Hypertext Preprocessor) は「ハイパーテキスト プリプロセッサ」で、サーバー側で実行されるスクリプト言語で、特に Web 開発に適しており、HTML に埋め込むことができます。 PHPの文法はC言語を学び、JavaやPerlの複数の言語の特徴を吸収して独自の特徴的な文法を開発し、Javaのオブジェクト指向プログラミングなど、それぞれの強みに応じて改良を重ねていくことが主な目標です。この言語の目的は、開発者が高品質の Web サイトを迅速に作成できるようにすることです。 PHP はオブジェクト指向開発とプロセス指向開発の両方をサポートしており、非常に柔軟に使用できます。

ソフトウェアの名前
PHP
软件平台
Windows、Linux、Unix、macOS...
オンライン時間
1995年
最終更新
2021年7月1日
ソフトウェア言語
PHP
デベロッパー
THE PHP Group
ソフトウェアライセンス
Creative Commons Attribution 
ソフトウェアバージョン
PHP 8.1.3
ソフトウェアのサイズ
16 - 26 MB
最新バージョン
8.1.3

目次

  1. PHP開発の歴史
  2. PHP言語の機能
    1. オープンソース無料
    2. 速くて効率的
    3. パフォーマンスの向上
    4. クロスプラットフォーム
    5. 常駐メモリ
    6. クロスプラットフォーム
  3. PHPの動作仕組み
  4. PHP リファレンス フレームワーク
  5. PHP 言語リファレンス
    1. PHPの組み込み関数
    2. PHP の事前定義変数
    3. PHPのデータ型
    4. PHPオペレーター
    5. PHPプロセス制御
    6. PHPのクラスとオブジェクト
    7. PHP 名前空間
    8. PHPリファレンスマニュアル
  6. PHPのバージョン履歴

PHP開発の歴史

PHP は多くの開発者が参加するオープンソース ソフトウェア プロジェクトで、元々は Personal Home Page の略称でしたが、正式に「PHP: Hypertext Preprocessor」という名前に変更されました。 PHP は 1994 年に Rasmus Lerdorf によって作成されました が、当初は彼自身の Web サイトへの訪問者数をカウントするために Perl 言語で書かれた単純なプログラムでした。 その後、C言語に書き換えられると同時にデータベースにアクセスできるようになり、1995年にPHP(Personal Home Page Tools)の最初のバージョンであるPHP1が公開されました。 それ以来、PHP を使用する Web サイトがますます増え、ループ ステートメントや配列変数などの機能を追加する要望が強くなりました。1995 年にリリースされた PHP2 では、mySQL のサポートが追加されました。

Andi Gutmans と Zeev Suraski は、大学のプロジェクトで電子商取引プログラムを開発する際に、PHP2 では明らかに不十分であることに気づき、コードを書き直して PHP3 をリリースしました。 PHP3 は、最新の PHP の構文構造に似た最初のバージョンです。PHP3 の最も強力な機能は、そのスケーラビリティです。PHP3 の新機能と、幅広いサードパーティのデータベースおよび API のサポートにより、このようなプログラムの作成が可能になります。 。

PHP3 の正式リリース直後、Andi Gutmans と Zeev Suraski は PHP コードの書き直しを開始しました。 設計の目標は、複雑なプログラムの実行時のパフォーマンスと、PHP 自体のコードのモジュール性を強化することです。 たゆまぬ努力の末、Zend エンジンは開発に成功し、設計目標が達成され、1999 年半ばに PHP が導入されました。 このエンジンをベースにし、さらに新しい機能を組み込んだ PHP4 は、2000 年 5 月に正式にリリースされました。 より高いパフォーマンスに加えて、PHP4 には、より多くの Web サーバーのサポート、HTTP セッションのサポート、出力バッファリング、より安全なユーザー入力、いくつかの新しい言語構造など、いくつかの重要な機能も含まれています。

PHP5 は 2004 年 7 月に正式にリリースされました。そのコアは第 2 世代の Zend エンジン (PHP7 は第 3 世代の Zend 拡張バージョン) であり、新しいオブジェクト モデルと多数の新機能が導入され、オブジェクト指向のサポートが開始されました。プログラミング。 PHP6 の長い開発と中止の後、オープン ソース コミュニティの開発をサポートするために、PHP5 は 6 つのバージョンをリリースしました。2015 年 12 月 3 日に PHP 7.0 のリリースが始まるまで、実際には、PHP5.6 にはすでに多くの機能が含まれています。 PHP6 で実現したい機能は、PHP7 の開発に貴重な時間を費やしました。 PHP7.0 のパフォーマンスは PHP5.6 と比較して 2 倍になり、PHP7 のリリースの成功により、多くのコア開発メンバーが PHP コミュニティに戻り、PHP8 は 2020 年 11 月 26 日にリリースされました。 PHP8 では、php7 シリーズと比較して、さまざまな変数の判定や演算に対してより厳密な検証・判定モードが採用されており、以降のバージョンでの jit のパフォーマンスの最適化に役立ちます。

高級言語としての PHP 言語はオープンソースであるという特徴があり、設計体系という点では C 言語体系に属しており、高等教育を受けた多くの初心者がすぐに受け入れて入門学習を完了することができます。使いやすく仕事も見つけやすいのでナチュラルファンも多い。 データ量が大きく、アクセス負荷が高い場合は、redis、mysql サブテーブル パーティション サブデータベース、elasticsearch 検索エンジン、メッセージ キュー書き込み保護、php システムの分散クラスター展開などの技術ソリューションを統合して、データを軽減できます。ストレージ、サービスへのアクセス、データの取得には大きなプレッシャーがかかります。

大規模プロジェクト、中小規模プロジェクト、小規模プロジェクトを問わず、PHP は非常に適した高級プログラミング言語ですが、適切かどうかはプロジェクト開発チームの習熟度によって決まります。 しかし、より大規模で複雑なプロジェクトの場合、最も一般的な php-fpm プログラミング モデルには弱点が現れます。 PHP-fpm によって明らかになった一連の欠点を解決するために、最も簡単で信頼性の高い解決策は、互換性のある PHP バージョンを適時にアップグレードすることです。PHP5.6 と比較して、PHP7.0.0 [14] は 2 倍のパフォーマンスを備えています。また、プリロードが提供されています。 PHP7.4によるプリロード機構により、一部のプログラムの常駐メモリを実現し、パフォーマンスを大幅に向上させることができ、PHP8では効率的なJIT(Just-In-Timeリアルタイムコンパイルと操作サポート)も提供します。 php-cli プログラミングでは、システム パフォーマンスの問題のほとんどを解決でき、PHP7 と PHP8 の両方がこのプログラミング モードをサポートしています。

20 年以上の開発を経て、php-cli 関連コンポーネントの急速な開発と改善により、PHP は TCP/UDP サービス、高パフォーマンス Web、WebSocket サービス、モノのインターネット、リアルタイム通信、ゲーム、マイクロサービス等 Web領域のシステム開発。

W3Techsが2019年12月6日に発表した統計によると、WEBサイトのサーバーサイドで使用されるプログラミング言語の78.9%がPHPとなっています。 コンテンツ管理システムのWebサイトのうち、WordPress(PHPで開発されたCMSシステム)を使用しているWebサイトは58.7%で、Webサイト全体の25.0%を占めています。

PHP言語の機能

オープンソース無料

PHP は、多くの利用者と多くの開発者を抱えるオープン ソース ソフトウェア プロジェクトです。Linux + Nginx + Mysql + PHP は、その古典的なインストールおよび展開方法です。すべての関連ソフトウェアはオープンソースで無料であるため、PHP を使用すると、正規のライセンス料金を大幅に節約できます。 ただし、オープン ソース ソフトウェアとして、PHP には大手テクノロジー企業のサポートが不足しており、インターネット上では PHP に関する悪いニュースが続いています。しかし、その継続的な反復と継続的なパフォーマンス向上の現実は感動的です。PHP コミュニティは実践的なツールを使用しています。行動 あらゆる種類の疑問に対して強力な応答を返します。

速くて効率的

PHP のコアは優れた効率的な C 言語に基づいており、高性能の拡張コンポーネントは C 言語で開発できます。PHP のコアには 1,000 を超える組み込み関数が含まれており、包括的な関数と簡潔なプログラム コードが出力されます。 PHP 配列は動的な拡張をサポートし、数値、文字列、または混合キー名を含む連想配列をサポートし、開発効率を大幅に向上させることができます。PHP は型付けが弱い言語であり、プログラムのコンパイルのパス率が高く、開発が高速化されます。他の強く型付けされた言語よりも効率が高い; PHP は当然ホット デプロイメントであり、php-fpm 操作モードでは、コード ファイルが上書きされてホット デプロイメントが完了します; PHP の 20 年以上の開発後、多数の参考資料が参照および学習のためにインターネットで見つけられます。

パフォーマンスの向上

PHP のバージョンが高くなるほど全体的なパフォーマンスが向上し、公式の紹介によると、PHP7.0.0 のパフォーマンスは PHP5.6 の 2 倍、PHP7.4 は PHP7.0 に比べて約 30% 高速です。 PHP7.4では10%ほど改善されました。 PHP 8.0 では、JIT コンパイラー機能が導入され、名前付きパラメーター、共用体型、アノテーション、コンストラクター プロパティのプロモーション、一致式、nullsafe 演算子、型システム、エラー処理、一貫性の改善など、さまざまな新しい言語機能が追加されています。 PHP には独自のコア開発チームがあり、5 年ごとにメジャー バージョン、毎月 2 つのマイナー バージョンをリリースする頻度を維持しており、最新バージョンは PHP8.08 です。 PHP 7.0.0 は 2015-12-03 にリリースされ、このバージョンの最新バージョンは PHP 7.4.21 (リリース日: 2021-07-01)、PHP 8.0.0 は 2020-11-26 にリリースされました。このバージョンの下のバージョンは PHP 8.0.8 (リリース日: 2021-07-01) です。

クロスプラットフォーム

各プラットフォームには対応する php インタープリターのバージョンがあり、ターゲット プラットフォームのバイナリ コード (PHP インタープリター) がさまざまなプラットフォーム用にコンパイルされることを意味します。php で開発されたプログラムは、変更することなく Windows、Linux、UNIX などの複数のオペレーティング システムで実行できます。 .優れた。

常駐メモリ

php-cli モードでは、プログラムをメモリに常駐させることができ、さまざまな変数やデータベース接続をメモリに長期間保存してリソースの再利用を実現できます。より一般的な方法は、cli フレームワークを、スウールの成分。

ページのライフサイクル

php-fpm モードでは、すべての変数はページ レベルにあり、グローバル変数であっても、クラスの静的メンバーであっても、ページの実行後にクリアされます。プログラマの要件が低く、メモリの消費もほとんどありません。小規模システムの中レベル開発に特に適しています。

PHPの動作仕組み

PHP には、php-fpm と php-cli という 2 つの一般的な動作モードがあります。 PHP が php-fpm モードでの実行を選択すると、グローバル変数であろうとクラスの静的メンバーであろうと、すべての変数はページレベルになり、ページの実行後にクリアされます。 php-cli モードで実行すると、プログラム常駐メモリを実現でき、さまざまな変数やデータベース接続をメモリに長期間保存してリソースの再利用を実現でき、パフォーマンスが大幅に向上します。より高いパフォーマンス、開発者へのより高い要件を取得するには、より高いレベルの開発が必要です。より一般的なモードは、swoole コンポーネントを組み合わせて cli フレームワークを作成することです。さまざまな変数をプロセス間の高性能共有メモリ テーブルに保存でき、サポートされます。ホットスタート php-cli は、さまざまなアプリケーション システムに対して信頼性が高く、開発可能です。

php-fpm は、PHP 5.3.3 (2010-07-22) で正式なコンポーネントになりました。安定した信頼性の高いプロセス管理サービスを提供します。プロセス数が不足している場合、プロセス数をインテリジェントに拡張できます。アイドル状態の場合は、プロセス数を増やすことができます。冗長なプロセスを自動的にリサイクルおよび破棄すると同時に、プログラムに対する強力な耐障害性を備え、非常に安定して動作するため、エンタープライズレベルの開発ニーズを満たすことができます。 php-fpm フレンドリーは、HTTP/HTTPS およびその他の TCP/IP インターネット プロトコルを使用してユーザーの入力と出力を完了します。ページ レベルのライフ サイクルのさまざまなリソースは使い果たされるとすぐに解放され、メモリ リークの問題はありません。 php-fpm は、一部の常駐メモリに対する技術サポートも提供します。たとえば、PHP 7.4 で導入された opcache.preload もローカル PHP クラスと関数の常駐メモリを実現できますが、この方法は柔軟性が十分ではなく、制約が多すぎます。サーバー構成。

php-cli はさまざまなリソースの常駐メモリを実現できるため、リソースを再利用し、マルチプロセスプログラミングや非同期プログラミングをより効率的に実行し、より高負荷容量のアプリケーションシステムを開発できます。 ただし、php-fpm の単純なプログラミング開発と比較すると、開発者は多くの注意を払う必要があり、多くの追加コントローラー開発を行う必要があり、そうでないと期待される高いパフォーマンスを実現できません。

まず第一に、開発者は、システム プロセスがさまざまなエラーに遭遇して終了した後に新しいプロセスが自動的に作成されるように、信頼性の高いプロセス管理サービスを実装する必要があります。この方法によってのみ、後続のサービス リクエストに十分な空きプロセスを確保することができます。割り当てられます。 プロセスを再起動するとプログラムやさまざまなリソースを再度ロードする必要があるため、致命的ではないエラーが発生してもプロセスが終了しないように、各ビジネス コード セグメントを例外で処理する必要があります。このプロセスは多くのパフォーマンスを消費します。したがって、安定して実行されるのはプロセスだけであり、メモリ上に常駐することだけが意味を持ちます。

次に、常駐メモリがあるため、作成した新しいプログラムを有効にするにはサービスを再起動する必要がありますが、これは fpm モードに慣れている開発者にとっては馴染みのないことです。 さらに、開発者は手動でメモリを解放する必要があります。そうしないと、システムを長時間実行した後にメモリ リークが発生します。 同時に、cli モードでは fpm のように $_SERVER、$_POST、$_GET、$_COOKI、$_FILES をプログラミング作業に直接使用することはできず、さまざまなインターネット通信プロトコルを自分で解析してユーザー入力と入力を完了する必要があります。出力。 マルチプロセス プログラミングを実現し、マルチコア CPU コンピューティングを使用し、pcntl および posix プログラミングの使用方法を学習するには、非同期プログラミング ロジックが必要ですが、これはまだ比較的困難です。 より一般的に使用されるモードは、swoole コンポーネントと組み合わせて cli フレームワークを作成することです。 PHP は、専門のコア開発チームが継続的に反復を行っているアクティブなコミュニティ開発言語で、最新バージョンは PHP 8.0.8 で、多くの新機能が導入されています。

PHP リファレンス フレームワーク

WordPress(CMS)

強力でスケーラブルで拡張しやすい機能、構築されたブログがSEO検索エンジンに優しく、すぐに上位に掲載される、Webサイトのテーマが多く、カラーバリエーションが豊富、強いコミュニティのサポート、そして何千万人もの開発者が貢献し、レビューしています。

Hyperf

Hyperf は、Swoole の高いパフォーマンスと高い柔軟性をベースにした進歩的な PHP コルーチン フレームワークです。組み込みのコルーチン サーバーと、一般的に使用される多数のコンポーネントを備えています。そのパフォーマンスは、従来の PHP-FPM ベースのフレームワークと比較して定性的に向上しています。標準コンポーネントは PSR 標準に基づいて実装され、強力な依存関係注入設計に基づいて、ほとんどのコンポーネントまたはクラスが置き換え可能で再利用可能です。

ThinkPHP

ThinkPHP は、高速で互換性があり、シンプルで軽量な国産の PHP 開発フレームワークで、2006 年初頭に初めて誕生し、Apache2 オープン ソース プロトコルの下でリリースされました。 シンプルさと実用性、優れたパフォーマンス、最小限のコードにこだわり、使いやすさに重点を置いています。 また、多くのオリジナル機能を備えており、コミュニティ チームの積極的な参加により、使いやすさ、拡張性、パフォーマンスの点で常に最適化および改善されています。

Drupal

Drupal は 2000 年に誕生し、PHP 言語に基づいて書かれた開発中の CMF (コンテンツ管理フレームワーク)、つまり CMS+ フレームワークです。 Drupal のアーキテクチャは、コア、モジュール、テーマの 3 つの部分で構成されます。 3 つはフック メカニズムを通じて密接にリンクされています。 自由に構成可能で、個人のブログからコミュニティ主導の大規模な Web サイトに至るまで、さまざまなアプリケーションの Web サイト プロジェクトをサポートできます。

easyswoole

EasySwoole は、HTTP、WebSocket、カスタム TCP、UDP プロトコルの同時混合監視をサポートする常駐メモリベースの国内分散 Swoole フレームワークであり、コルーチン接続プール、コルーチン Kafka クライアント、コルーチン ElasticSearch クライアント、コルーチン Redis クライアントなどの豊富なコンポーネントを備えています。 、コルーチン カスタム キュー、コルーチン Memcached クライアント、コルーチン HTTP クライアント、Crontab タイマーなど。

Laravel

Laravel は、シンプルでエレガントな PHP Web 開発フレームワーク (PHP Web フレームワーク) です。 ヌードルのような乱雑なコードから解放され、優れた Web アプリを構築するのに役立ち、コードの各行が簡潔で表現力豊かになります。

CakePHP

CakePHP の設計は非常にエレガントで、冗長なライブラリがなく、すべての機能が純粋なフレームワークであり、実行効率も悪くありません。

imi

PHP-FPM、Swoole、Workerman などの複数のコンテナ環境で実行できます。

PHP 言語リファレンス

PHPの組み込み関数

PHP には多くの標準関数と構造があります。 特定の拡張モジュールを使用してコンパイルする必要がある関数もいくつかあります。そうしないと、使用時に致命的な「未定義関数」エラーが発生します。 たとえば、image 関数で imagecreatetruecolor() を使用するには、PHP のコンパイル時に GD サポートを追加する必要があります。 または、mysqli_connect() 関数を使用するには、PHP のコンパイル時に MySQLi サポートを追加する必要があります。 文字列関数や変数関数など、PHP の各バージョンにはすでに多くのコア関数が含まれています。 phpinfo() または get_loaded_extensions() を呼び出して、PHP によってどの拡張ライブラリがロードされているかを確認します。 多くの拡張機能がデフォルトで有効になっている点にも注意してください。

PHP プログラミングでは、ユーザーの入力のセキュリティに注意を払い、ユーザー入力のあらゆる側面をフィルタリングする必要があります。組み込み関数にはセキュリティに関連する関数が多数あります。プログラミング学習者は、次の 7 つの重要なポイントに注意する必要があります。機能は次のとおりです。

ユーザー入力から安全な 7 つの組み込み関数
関数名 序章
htmlentities 文字をHTMLエスケープ文字に変換する
htmlspecialchars_decode 特殊な HTML エンティティを通常の文字に変換します。
htmlspecialchars 特殊文字を HTML エンティティに変換する
nl2br 文字列内のすべての改行の前に HTML 改行タグを挿入します
str_replace 部分文字列の置換
strip_tags 文字列から HTML タグと PHP タグを取り除く
stripslashes バッククオート引用符文字串

PHP の事前定義変数

すべてのスクリプトに対して、PHP は多数の事前定義変数を提供します。 これらの変数は、すべての外部変数を組み込み環境変数として表し、エラー メッセージをリターン ヘッダーとして表します。 PHP プログラミングでは、次のシステム変数を使用する必要があることがよくあります。プログラミング学習者が習得する必要がある事前定義された 7 つの変数は次のとおりです。

マスターする必要がある 7 つの事前定義変数
変数名 説明する
$GLOBALS グローバルスコープで使用可能なすべての変数を参照します
$_SERVER サーバーと実行環境の情報
$_GET HTTP GET 変数 (ユーザー入力の 1 つ)
$_POST HTTP POST 変数 (ユーザー入力の 1 つ)
$_FILES HTTP ファイルアップロード変数
$_SESSION セッション変数 (ユーザーセッション)
$_COOKIE HTTP Cookie (ユーザーセッション識別子)

PHPのデータ型

PHP は 10 のプリミティブ データ型をサポートします。 4 つのスカラー型: bool (ブール)、int (整数)、float (浮動小数点、double とも呼ばれます)、string (文字列)、4 つの複合型: array (配列)、object (オブジェクト)、callable (呼び出し可能)、および iterable (反復可能); 最後に、resource (リソース) と NULL (型なし) の 2 つの特別な型です。

PHPオペレーター

演算子とは、1 つ以上の値 (プログラミング用語では式) を与えられて、別の値を生成するものです (したがって、構造全体が式になります)。 PHP の演算子には、演算子の優先順位、算術演算子、代入演算子、ビット演算子、比較演算子、エラー制御演算子、実行演算子、インクリメント/デクリメント演算子、論理演算子、文字列演算子、配列演算子、および型演算子が含まれます。

PHPプロセス制御

PHP スクリプトは一連のステートメントで構成されており、ステートメントは代入ステートメント、関数呼び出し、ループ、条件ステートメント、または何も実行しないステートメント (空のステートメント) の場合もあります。 ステートメントは通常、セミコロンで終わります。さらに、中括弧を使用してステートメントのグループをステートメント グループにカプセル化することができます。ステートメント グループ自体をステートメントの行とみなすことができます。

PHPのクラスとオブジェクト

各クラスの定義は、キーワード class で始まり、その後にクラス名、その後にクラスの属性とメソッドの定義を含む中括弧のペアが続きます。 クラス名には、PHP の予約語ではない任意の有効なラベルを使用できます。 有効なクラス名は文字またはアンダースコアで始まり、その後に複数の文字、数字、またはアンダースコアが続きます。 正規表現として表現します: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$。 クラスには、独自の定数、変数 (「プロパティ」と呼ばれる)、および関数 (「メソッド」と呼ばれる) を含めることができます。 クラスのインスタンスを作成するには、new キーワードを使用する必要があります。 オブジェクトがコンストラクターを定義し、エラー時に例外をスローしない限り、新しいオブジェクトの作成時にオブジェクトが常に割り当てられます。 クラスはインスタンス化する前に定義する必要があります (場合によってはそうする必要があります)。 new の後にクラス名を含む文字列が続く場合、そのクラスのインスタンスが作成されます。 クラスが名前空間に属している場合は、その完全名を使用する必要があります。

PHP 名前空間

PHP では、名前空間は、クラス ライブラリやアプリケーションを作成するときにクラスや関数などの再利用可能なコードを作成するときに発生する 2 種類の問題を解決するために使用されます。ユーザーが作成したコードと、PHP の内部クラス/関数/定数またはサードパーティのクラス間での名前の競合です。関数/定数。 非常に長い識別子名 (通常、最初のタイプの問題を軽減するために定義される) のエイリアス (または短い) 名を作成し、ソース コードの可読性を向上させます。 PHP 名前空間は、関連するクラス、関数、定数をグループ化する方法を提供します。

PHPリファレンスマニュアル

多くの php ドキュメントがあり、ここではその一部を抜粋します。必要なユーザーは公式 Web サイトにアクセスして、より完全なユーザー マニュアルを入手できます。

PHPのバージョン履歴

バージョン 発売日 究極のサポート 関連する更新情報とコメント
1.0 1995-06-08 -- 初めて使用する
2.0 1996-04-16 -- PHP 1.0 の改良版で、より速く、より小さく、より簡単に動的 Web ページを生成できます。
3.0 1998-06-06 2000-10-20 Zeev Suraski と Andi Gutmans は、拡張可能なコンポーネントをサポートするために最下層を書き直しました。
4.0 2000-05-22 2001-06-23 Zend エンジンの追加、より多くの Web サーバーのサポート、HTTP セッションのサポート、出力バッファリング、より安全なユーザー入力、およびいくつかの新しい言語構造
4.1 2001-12-10 2002-03-12 スーパーグローバル (スーパーグローバルの概念、つまり $_GET、$_POST など) を追加しました。
4.2 2002-04-22 2002-09-06 register_globals はデフォルトで無効になっています
4.3 2002-12-27 2005-03-31 CGI なしで使用できるコマンド ライン インターフェイス CLI を導入しました。
4.4 2005-07-11 2008-08-08 いくつかの致命的なエラーを修正しました
5.0 2004-07-13 2005-09-05 Zend は第 2 世代エンジンにアップグレードされ、オブジェクト指向プログラミングのサポートを開始しました
5.1 2005-11-24 2006-08-24 パフォーマンスを向上させるためにコンパイラを導入し、データベースにアクセスするためのインターフェイスとして PDO を追加しました
5.2 2006-11-02 2011-01-06 フィルタ拡張機能をデフォルトで有効にする
5.3 2009-06-30 2014-08-14 ネームスペースをサポートし、XMLReader と XMLWriter を使用して XML サポートを強化し、SOAP、遅延静的バインディング、ジャンプ タグ (制限付き goto)、クロージャ、およびネイティブ PHP アーカイブをサポートします。 php-fpmはphp5.3.3で正式コンポーネントになりました
5.4 2012-03-01 2015-09-03 特性および短い配列式がサポートされています。 register_globals、safe_mode、allow_call_time_pass_reference、session_register()、session_unregister()、magic_quotes、session_is_registered() を削除しました。 内蔵Webサーバーを追加しました。 パフォーマンスが向上し、メモリ使用量が削減されました。
5.5 2013-06-20 2016-07-10 generators をサポートし、最後に例外処理のために、OpCache (Zend Optimizer+ ベース) を正式リリースに追加します。
5.6 2014-08-28 2018-12-31 定数スカラー式、可変引数関数、パラメーターのアンパック、新しい累乗演算子、関数と定数の use ステートメントの拡張、SAPI モジュールとしての新しい phpdbg デバッガー、およびその他の小さな改善。 $HTTP_RAW_POST_DATA の代わりに php://input を使用してください。iconv および mbstring 設定オプションのエンコード関連のオプションは廃止されました。
6.x 未公開 -- 正式にはリリースされず、キャンセルされた PHP バージョン。
7.0 2015-12-03 2018-12-03 Zend エンジンは第 3 世代にアップグレードされ、全体的なパフォーマンスは 5.6 の 2 倍になっています。 ereg、mssql、mysql、sybase_ct などの 4 つの拡張子を削除します。 型宣言が導入され、必須モード (デフォルト) と厳密モードの 2 つのモードが導入されます。 匿名クラスがサポートされています。
7.1 2016-12-01 2019-12-01 void 戻り値の型、クラス定数、可視性修飾子、新しい Nullable (Nullable) 型、新しい短い配列構文 ([])、複数の例外キャプチャ処理のサポート、mcrypt 拡張機能の破棄と OpenSSL への置き換え
7.2 2017-11-30 2020-11-30 GD 拡張機能の png2wbmp() と jpeg2wbmp() は非推奨になり、オブジェクト パラメーターと戻り値の型のヒント、抽象メソッドのオーバーライドなどが廃止されます。
7.3 2018-12-06 2021-12-06 より柔軟な Heredoc および Nowdoc 構文、大文字と小文字を区別しない定数宣言は非推奨になり、文字列内の非文字列コンテンツの検索は ASCII エンコード値ではなく文字列として扱われるようになりました。
7.4 2019-11-28 2022-11-28 Prelloading プリロード メカニズム、改善された OpenSSL、弱い参照など。 属性には、制限された型、制限された戻り値の型の共分散とパラメーターの型の反転、および値のテキスト区切り文字が追加され、PHP8 への移行に向けた一定の準備が整います。
8.0.0 2020-11-26 -- JIT (Just-In-Time Just-In-Time Compilation)、新しい静的な戻り型、新しい混合型、名前付きパラメーター (Named arguments) および注釈 (Attributes) により、静的呼び出しによる非静的メソッド、文字列 A の呼び出しは許可されなくなりました。数値との比較では、まず数値を文字列に変換してから比較します。
8.2 2022-12 -- PHP 8.2 では、トレイトで定数を定義するためのサポートが追加され、「Random」拡張機能と「read-only」クラス、Disjunctive Normal Form (DNF) タイプが導入され、組み込み Web サーバーの MIME タイプ テーブルが更新され、さまざまな機能が削減されました。返された文字列のメモリ使用量は、最初に macOS Instrument の JIT パフォーマンス分析生成をサポートし、Linux に対して arc4random_buf を有効にし、ランダム バイトに対して Glibc 2.36 以降を導入します。
PHP 8.2 は当初、ARM64 プラットフォーム用の Windows でのクロスプラットフォーム作成をサポートし、PHP .text フィールドの近くに JIT バッファ Opcache を割り当てて、IP 関連の直接呼び出しとジャンプを可能にしました。 新しいバージョンでは、PHP ソケットの新しいオプションも導入され、新しい Curl オプション、新しい ZipArchive メソッドがサポートされ、動的属性が廃止され、一部のパフォーマンスが最適化されています。