PHP4から移行できない開発者へ、PHP4 & 5比較データ
2008/12/17
![]() |
PHP: Hypertext Preprocessor |
PHP4は8月8日(米国時間)にサポート終了となった。以降、PHP4がアップグレードされることはない。セキュリティの観点からPHP4を採用している場合にはできるかぎり早いタイミングでPHP 5.2系へアップグレードする必要がある。しかし、とは言ってもPHP4からなかなか移行できないという場合も多い。PHP4から5への変更にともなう学習コストが懸念されるし、アプリケーションの更新も骨が折れる。
しかしアップデートしないわけにもいかない。Zend PHP 5 Certification BlogにDifferences Between PHP 4 and 5のタイトルのもとPHP4とPHP5の違いを簡単にまとめたものが公開されている。PHP5の学習を躊躇っている場合には概観を掴むためにもチェックしておきたい内容だ。簡単にまとめると次のような内容が紹介されている。
言語機能の違い
- PHP5では関数やクラスメソッドに渡すパラメータを特定のクラスやそのサブクラス、または配列に限定することができる。ただしそれ以外のスカラ型は指定しない方がいい
- PHP5では文字列や配列操作に関する多くの新しい関数がコアプラットフォームに追加されている
オブジェクトの違い
- PHP5ではオブジェクトは参照渡しとなった。オブジェクトに関連付けられた変数はオブジェクトのコピーを作成するのではなく、オブジェクトへの参照が一つ増えることを意味する
- PHP5ではオブジェクトをコピーする場合にはcloneコンストラクトと__clone()マジックメソッドを使う
- PHP5ではコンストラクタとデストラクタには__construct()と__destruct()という名前を使う必要がある
- PHP5ではインタフェースと抽象化クラスが導入されている
- PHP5では定数、スタティックメソッド、プロパティをクラスのスコープ内で定義できる
- PHP5ではクラスメソッドやプロパティにはpublic、private、protectedなどを指定できる
- PHP5ではクラスやメソッドに継承を許可するかどうかを指定できる
マジックメソッドの違い
- PHP5には新しいマジックメソッドがいくつか追加されている
- 定義されていないオブジェクトプロパティにアクセスする場合は__get()および__set()がコールされる
- isset()に定義されていないプロパティが渡される場合は__isset()がコールされる
- unset()に定義されていないプロパティが渡される場合は__unset()がコールされる
- オブジェクトが直接echoまたはprint()される場合には__toString()がコールされる
エクステンションの違い
- PHP5ではSimpleXML、DOMXML、DOMXSL、Sablotron、PDO、hash、SPL、Reflectionなどのエクステンションが追加されたり、または新しい機能が追加されている
エラーハンドリングの違い
- PHP5では例外処理のハンドリングがサポートされている
細かい違いや新しい機能の追加、古い機能から新しい機能への変更などほかにも注意すべき点はあるが、全体としてどういった変更が実施されたのかを把握するうえでは役に立つ内容だ。PHP4からアップグレードを躊躇っている場合には一度読んでおきたい内容だ。
関連記事
- PHP立て続けに更新、セキュリティ対策済み5.2.8[2008/12/11]
- PHP 4最終バージョン登場、全ユーザにアップグレードを強く推奨[2008/8/12]
- PHP 5.3向けアルファ登場 - 正式版は9月中旬から10月中旬[2008/8/4]
- 120以上のバグ修正したPHP 5.2.6登場 - 安定性とセキュリティ向上へ[2008/5/12]
- 安定性の向上とセキュリティ修正、PHP 5.2系最新版登場[2007/11/12]
- PHP 5.2.4登場 - 5系ユーザはアップグレードを、4系ユーザは移行検討を[2007/9/3]
- PHP 4のサポートが12月31日で終了 - 2007年中にPHP 5への移行を検討のこと[2007/7/17]
- PHP 5.2.3登場 - PHPユーザは早急なアップグレードを[2007/6/2]
- 迅速なアップデートを! セキュリティ対策が施されたPHP 5.2.2/4.4.7リリース[2007/5/8]
- セキュリティ問題を修正したPHP 5.1.5/4.4.4公開[2006/8/22]
ヘッドライン
- ADI、コンスタントオンタイム同期式降圧スイッチングコントローラを発表[20:12 3/16]エレクトロニクス
- Freescale、車載ネットワークのさまざまな課題に対応する次世代SBCを発表[20:01 3/16]エレクトロニクス
- DOWA、波長が300〜350nmの深紫外LEDの実用化に成功[19:36 3/16]エレクトロニクス
- エプソン、4chアナログ入力の車載向けカメラインタフェースICを発表[18:58 3/16]エレクトロニクス
- ルネサス エレクトロニクスの組織体制と人事が決定[18:44 3/16]エレクトロニクス
- Microchip、動作時電流が50μA/MHzの省電力8bit MCUを発表[18:21 3/16]エレクトロニクス
- ルネサス、フルセグ放送対応の携帯電話用プロセッサを開発[18:09 3/16]エレクトロニクス
- LeCroy、波形ビューワ機能ソフトウェアを発表[18:00 3/16]エレクトロニクス
- STMicro、DDR3モジュール用にSPD EEPROM統合型温度センサICを発表[17:53 3/16]エレクトロニクス
- AMAT、台南のFPD/太陽電池向け製造装置拠点の生産能力を拡大[17:47 3/16]エレクトロニクス






