2009-04-13 53 views
2

我有一個遺留的Web應用程序php4/mysql4(MyISAM,db包含一些cms,一些用戶數據,一些日曆應用程序)。現在我要用php5/mysql5遷移到新的服務器。遷移php4/mysql4到php5/mysql5:預計的PHP問題?

什麼是在這樣的遷移scenary(PHP,SQL查詢,任何)典型的PHP問題?

我聽說函數參數傳遞發生改變,引用調用/按值調用。你能舉個例子還是解釋一下?

還有什麼我應該知道的?

(MySQL的問題都屬於一個不同的問題:Migrating php4/mysql4 to php5/mysql5: switch to InnoDB?

回答

2

大多數PHP 4/5的兼容性問題是兩件事情:

  • 新的保留字
  • 新類/對象後端

大多數v4代碼在v5中都能正常運行。您可能遇到的問題是代碼取決於v4的類模型的侷限性,或者利用v4的參考怪癖。但是大多數人不會對這些限制進行編碼(我有 - 這就是爲什麼我知道他們在那裏)。

如果您遇到類/對象限制,您可以在「v1」模式下運行Zend引擎,使類和對象的行爲與v4類似。 This is documented.

1

我在移民中間我和我發現很多aliasing問題。

如果你想有一個乾淨的代碼,那麼你需要找到適當的解決方案,以您的特定片段。如果清潔不那麼重要,你可能會發現這個功能非常有用:

function php4_clone($object) { 
    if (version_compare(phpversion(), '5.0') < 0) { 
     return $object; 
    } else { 
     return @clone($object); 
    } 
}