主な違い: PHPは、Web開発に主な実装があるサーバーサイドのスクリプト言語です。 ただし、汎用のプログラミング言語としては使用できます。 PHP 4とPHP 5は、PHPの2つのバージョンです。 PHP4は2000年5月22日にリリースされました。2004年7月13日に、PHP5がリリースされました。 それはZend Engine IIによって動かされました。 これはPHP 4を改良したもので、さまざまな新機能が含まれています。
PHPは、オープンソースのサーバーサイドのHTML埋め込みスクリプト言語です。 それは基本的に他のCGIプログラムができるどんなタスクも実行することができますが、それは主に動的Webページを作成するために使われます。 その主な利点は、それが多くの種類のデータベースと互換性があることです。 さらに、PHPはIMAP、SNMP、NNTP、POP3、またはHTTPを使用してネットワークを介して通信できます。
PHPにはコマンドラインインターフェース機能があり、スタンドアロンのグラフィカルアプリケーションで使用できます。 PHPコマンドは、外部ファイルを呼び出してデータを処理するのではなく、HTMLソース文書に直接埋め込むことができます。 HTMLドキュメントでは、PHPスクリプトは特別なPHPタグで囲まれています。 これらのタグのおかげで、プログラマはHTMLを出力するために大量のコードに頼らなくても、HTMLとPHPを切り替えることができます。 また、PHPはサーバー上で実行されるため、クライアントはPHPコードを表示できません。
2004年7月13日に、PHP 5がリリースされました。 それはZend Engine IIによって動かされました。 これは、PHP 4を改良したもので、オブジェクト指向プログラミングのサポートの向上、PHP Data Objects(PDO)拡張、多数のパフォーマンスの向上など、さまざまな新機能が含まれています。 PDO拡張は、データベースにアクセスするための軽量で一貫性のあるインタフェースを定義します。 最新の静的バインディングはバージョン5.3で追加されました。 PHP 5もまた、以前のバージョンのPHPと下位互換性があるように設計されているため、PHP 4からPHP 5への変換中に機能がほとんど損なわれることはありません。
PHP 4とPHP 5の違いはいくつかあります。
- PHP 5ではregister_globals、マジッククオート、セーフモードが削除されました。 これは、register_globalsが意図的にランタイムデータインジェクションを許可することによってセキュリティホールを開いていたこと、およびマジッククォートの使用が予測不可能な性質を持っていたためです。
- PHP 5はZend Engine IIによって供給されていましたが、PHP 4はZend Engine 1.0によって供給されていました。
- PHP5では、文字をエスケープするためにマジッククオートをaddslashes()関数に置き換えました。
- PHP 5はオブジェクト指向ですが、PHP 4は手続き言語です。
- PHP 5では、クラスをAbstractとして宣言することができます。
- PHP 5には静的メソッドとプロパティが組み込まれています。
- PHP5では__autoload()という特別な関数が導入されました。
- PHP 5では、クラスまたはメソッドをFinalとして宣言することができます。
- PHP 5では、__ call、__get、__ set、__toStringなどの多数のマジックメソッドが導入されています。
- PHP 5では、公開、非公開、保護の3つのレベルの可視性があります。
- PHP 5では例外が発生しました。
- PHP 4では、オブジェクトも含め、すべて値で渡されていました。 PHP 5では、すべてのオブジェクトは参照渡しです。
- PHP 5ではインターフェースが導入されました。 インターフェースで定義されているすべてのメソッドはパブリックでなければなりません。
- PHP 5では 'E_STRICT'として定義された新しいエラーレベルが導入されました
- PHP 5では、SimpleXML、DOMおよびXSL、PDO、Hashなどの新しいデフォルトの拡張機能が導入されています。
- PHP 5では新しい機能が導入されました。
- PHP 5では、新しい予約キーワードがいくつか導入されています。
- PHP 5には、アクセス指定子、継承など、php 4以外のOOPの概念が含まれています。
- PHP 5では、現在のコンテンツ管理システムのサポートが強化されています。
- PHP 5では、RAMの消費量が削減されています。
- PHP 5では、PHPスクリプトの脆弱性の悪用に対するセキュリティが強化されています。
- PHP 5では、新しい機能と拡張機能により、プログラミングが簡単になりました。
- PHP 5では、MySQL 4.1以降を使用する開発者向けにMySQLiという新しいMySQL拡張機能が導入されました。
- PHP 5では、SQLiteはPHPにバンドルされています。
- PHP 5では、Webサービスとの相互運用性のためのまったく新しい組み込みSOAP拡張機能が導入されました。
- PHP 5では、XMLにPHPオブジェクトとして簡単にアクセスして操作するための新しいSimpleXML拡張が導入されました。 DOMエクステンションとのインタフェースも可能で、その逆も可能です。
- PHP 5では、ストリーム上の低レベルのソケット操作にアクセスする機能など、ストリームが大幅に改善されました。