PHP4到PHP5迁移

PHP4到PHP5迁移,php,migration,Php,Migration,要顺利地从PHP4迁移到PHP5,需要遵循哪些好步骤。哪些类型的代码可能会被破坏?我们有一个应用程序严重依赖PHP4XML DOM函数,它需要大量的重新工具来改变PHP5 除此之外,大多数更改都是对错误处理(利用异常)和PHP类等方面的改进。我还曾经开发过一个应用程序,该应用程序大量使用PHP4的XML支持,如果要迁移到PHP5,需要做大量工作 我当时看到的另一个重要变化是函数参数默认处理的变化。如果我记得的话,在PHP4中,除非您另外指定,否则它们是按副本传递的,但在PHP5中,默认情况下更改

要顺利地从PHP4迁移到PHP5,需要遵循哪些好步骤。哪些类型的代码可能会被破坏?

我们有一个应用程序严重依赖PHP4XML DOM函数,它需要大量的重新工具来改变PHP5


除此之外,大多数更改都是对错误处理(利用异常)和PHP类等方面的改进。

我还曾经开发过一个应用程序,该应用程序大量使用PHP4的XML支持,如果要迁移到PHP5,需要做大量工作

我当时看到的另一个重要变化是函数参数默认处理的变化。如果我记得的话,在PHP4中,除非您另外指定,否则它们是按副本传递的,但在PHP5中,默认情况下更改为按引用传递。在编写良好的代码中,这可能不会对您造成很大影响,但肯定会导致问题

我认为我发现的另一个变化是,不再允许对象覆盖其“this”字段。我想说,一开始这是一个非常糟糕的主意(我认为这可能不是PHP4中的故意特性),但我肯定发现我们的系统中有几个部分依赖于它


希望这能有所帮助。

我能给任何使用PHP4的人的最好建议是:

error_reporting( E_ALL );

它几乎可以准确地告诉您需要做什么。

OOP是最大的区别之一。它不会中断,因为PHP4和PHP5 OOP样式是可互换的,但我建议利用PHP5的新OOP样式。将您现有的类转换为PHP5并不需要大量的工作,它确实为您提供了一些额外的神奇方法,可以帮助您解决一些现有的黑客问题(我记得在大多数类中都有一个几乎无用的_-toString等效方法).

当我搜索PHP4和PHP5向函数行为传递参数时,我碰巧注意到谷歌搜索结果顶部的这篇文章。其他国家;按值传递(按副本传递)仍然是默认值。