PHP4からPHP5へのスムーズな移行には、どのような手順が必要ですか。壊れる可能性のあるコードの種類は何ですか?PHP4からPHP5への移行
答えて
私はかつてPHP4のXMLサポートを使っていたアプリケーションで作業していましたが、PHP5に移行するにはかなりの労力が必要でした。
私が当時考えていた他の重要な変更の1つは、関数パラメータのデフォルト処理の変更でした。私が覚えているのであれば、PHP4では特に指定しない限り、pass-by-copyになっていますが、PHP5ではデフォルトでpass-by-referenceに変更されています。よく書かれたコードでは、おそらくあなたに大きな違いはありませんが、確かに問題を引き起こす可能性があります。
私が変わったことを発見したことは、オブジェクトがもはや「this」フィールドを上書きすることができなくなったことです。私はそれが最初から本当に悪い考えだったと言います(そして、私はそれがPHP4の意図的な機能ではなかったかもしれないと思います)が、私は確かにそれに依存しているシステムのいくつかの部分を見つけました。
その一部が役立ちます。
私たちは、PHP 4のXML DOMの機能に大きく依存していたアプリを持っていたし、それは、そのほとんどの変更以外にもPHP 5
にわたって変化する段取りの多くは活用するためにエラー処理(のようなものに改善した必要例外の)とPHPクラス。
私が与えることができる最高のアドバイスは、PHP4での作業誰もがこれである:
error_reporting(E_ALL);
それはかなりあなたがする必要が正確に何を教えてくれます。
移行前または移行後? –
OOPは、最も大きな違いの1つです。 PHP4とPHP5のOOPスタイルは互換性がありますが、PHP5の新しいOOPスタイルを利用することをお勧めします。既存のクラスをPHP5に変換するのは膨大な作業ではなく、いくつかの既存のハックを解決するのに役立ついくつかの魔法のメソッドを提供しています(ほとんどのクラスで__toStringメソッドに近いものを覚えています)。
- 1. php4からphp5へのコールバックによるセッションの移行奇妙な動作
- 2. DOMXML、PHP4 => PHP5
- 3. PHP4とPHP5のerror_reporting
- 4. 引用符をエスケープする - PHP4からPHP5に移動
- 5. Php4からPhp5に変更する
- 6. PHP4から5への移行と例外の処理
- 7. mktime VS時間PHP4 VS PHP5
- 8. php4/mysql4をphp5/mysql5に移行する:InnoDBに切り替えますか?
- 9. SVGからPHP4へのSVG
- 10. RSSの解析、たぶんphp4> php5の問題?
- 11. PHP4とPHP5の両方がIIS7で動作しています
- 12. php5/smarty2.6からphp7/smarty3.1に移行する可変スコープ
- 13. 接続データベースでphp5からphp7に移行する
- 14. php5 xmlParserをphp4サーバーで動作させるには?
- 15. Play Framework 2.5の移行 - Global.onStartからDependency Injectionへの移行
- 16. LinuxからAndroidへのモジュールの移行
- 17. androidのgcmからfcmへの移行
- 18. EmacsからXcodeへの移行のヒント
- 19. 1.2から3.4へのEasyMockの移行
- 20. 2010から2013へのInfoPathの移行
- 21. 1.4から3.0へのjQueryの移行
- 22. 2.6から3.00へのEhcacheの移行
- 23. Netbeansのantからmavenへの移行
- 24. AccessからSQLServerへのデータの移行
- 25. ParseからAzureのDocumentDBへの移行
- 26. C++からC#へのコードの移行
- 27. CouchbaseClientConfigurationからSDKのClientConfigurationへの移行
- 28. SVNからHGへのマルチヘッドプロジェクトの移行
- 29. httpからhttpsへのウェブサイトの移行
- 30. AS7からWF10へのwildflyの移行
私は、PHP4とPHP5が関数の振る舞いに引数を渡すのを検索したとき、Googleの検索結果の一番上にこのポストがあることに気付きました。 [phpマニュアル](http://php.net/manual/en/functions.arguments.php)には、そうでないことが記載されています。値渡し(渡し渡し)はデフォルトで_still_です。 –