2008-08-09 13 views
9

PHP4からPHP5へのスムーズな移行には、どのような手順が必要ですか。壊れる可能性のあるコードの種類は何ですか?PHP4からPHP5への移行

答えて

8

私はかつてPHP4のXMLサポートを使っていたアプリケーションで作業していましたが、PHP5に移行するにはかなりの労力が必要でした。

私が当時考えていた他の重要な変更の1つは、関数パラメータのデフォルト処理の変更でした。私が覚えているのであれば、PHP4では特に指定しない限り、pass-by-copyになっていますが、PHP5ではデフォルトでpass-by-referenceに変更されています。よく書かれたコードでは、おそらくあなたに大きな違いはありませんが、確かに問題を引き起こす可能性があります。

私が変わったことを発見したことは、オブジェクトがもはや「this」フィールドを上書きすることができなくなったことです。私はそれが最初から本当に悪い考えだったと言います(そして、私はそれがPHP4の意図的な機能ではなかったかもしれないと思います)が、私は確かにそれに依存しているシステムのいくつかの部分を見つけました。

その一部が役立ちます。

+0

私は、PHP4とPHP5が関数の振る舞いに引数を渡すのを検索したとき、Googleの検索結果の一番上にこのポストがあることに気付きました。 [phpマニュアル](http://php.net/manual/en/functions.arguments.php)には、そうでないことが記載されています。値渡し(渡し渡し)はデフォルトで_still_です。 –

1

私たちは、PHP 4のXML DOMの機能に大きく依存していたアプリを持っていたし、それは、そのほとんどの変更以外にもPHP 5

にわたって変化する段取りの多くは活用するためにエラー処理(のようなものに改善した必要例外の)とPHPクラス。

2

私が与えることができる最高のアドバイスは、PHP4での作業誰もがこれである:

error_reporting(E_ALL); 

それはかなりあなたがする必要が正確に何を教えてくれます。

+0

移行前または移行後? –

1

OOPは、最も大きな違いの1つです。 PHP4とPHP5のOOPスタイルは互換性がありますが、PHP5の新しいOOPスタイルを利用することをお勧めします。既存のクラスをPHP5に変換するのは膨大な作業ではなく、いくつかの既存のハックを解決するのに役立ついくつかの魔法のメソッドを提供しています(ほとんどのクラスで__toStringメソッドに近いものを覚えています)。

関連する問題