簡體   English   中英

PHP 5.3 與 PHP 7.x 之間的差異

[英]Difference between PHP 5.3 to PHP 7.x

我的項目在PHP 5.3上運行。 現在我想將 PHP 升級到更高版本7.x

在更新之前,我試圖搜索差異和復雜性,但沒有得到滿意的答案。

搜索到的鏈接:

  1. 上升氣流文章
  2. PHP手冊

我還想知道是否需要更改當前在PHP 5.3上正確運行的代碼?

任何建議將不勝感激。

  1. 名稱的 PHP 7(不是 6)

當前的穩定版本使用版本號 PHP 5.6。 經過一番爭論之后,開發團隊決定在下一個主要版本中省略 PHP 6 名稱。 PHP 6 過去已經作為一個實驗項目存在,但從未進入生產階段。

  1. 品牌打屁股新 Zend 引擎

Zend 引擎自 1999 年與當時的新 PHP 4 版本一起推出以來一直為 PHP 提供支持。 Zend——不要與 Zend 框架混淆——是一個用 C 語言編寫的開源執行引擎,用於解釋 PHP 語言。 當前的 PHP 5.X 系列使用 Zend Engine II,它增強了初始引擎的功能,並為語言添加了可擴展的對象模型和顯着的性能增強。

PHP 7 收到了一個全新版本的引擎,代號為 PHP#NG(下一代)。 3.兩倍的速度

新 PHPNG 引擎最容易識別的優勢是顯着的性能改進。 PHPNG 開發團隊重構了 Zend 引擎,顯着優化了內存使用。

結果? 您可以在下面看到 Zend Performance Team 提供的性能基准。 通過使用 PHP 7,您不僅可以更快地執行代碼,而且還需要更少的服務器來為相同數量的用戶提供服務。

  1. 促進錯誤處理

至少可以說,處理致命和可捕獲的致命錯誤對於 PHP 編碼人員來說從來都不是一件容易的事。 新的引擎異常將允許您用異常替換這些類型的錯誤。 如果沒有捕獲到異常,PHP 將繼續返回與當前 5.X 系列相同的致命錯誤。

新的 \\EngineException 對象不擴展 \\Exception 基類。 這確保了向后兼容性並在錯誤處理中導致兩種不同類型的異常:傳統異常和引擎異常。

為了讓程序員能夠同時捕獲這兩者,PHP 7 引入了一個名為 \\BaseException 的新共享父類。

  1. 64 位 Windows 系統支持

PHP 是 LAMP 堆棧的重要成員,這意味着它的原生環境是 Linux——但也可以在 Windows 系統上運行它。 5.X 系列尚不提供 64 位整數或大文件支持,因此直到現在 x64 構建都被認為是實驗性的。

PHP 7 將改變這一點,因為它引入了一致的 64 位支持,這意味着本機 64 位整數和大文件都將得到支持,讓您將來可以放心地在 64 位 Windows 系統上運行該語言。

  1. 新的宇宙飛船和空合並算子

Spaceship 運算符以組合比較運算符的正式名稱運行。 new 運算符的符號如下所示:<=>(有點像簡化的宇宙飛船,如果你想得對的話)。

如果兩個操作數相等,則 spacehip 運算符返回 0,如果左側更大則返回 1,如果右側更大則返回 -1。 它也被稱為三向比較運算符,它已經存在於其他流行的編程語言中,如 Perl 和 Ruby。

您是否曾經想通過聲明函數的返回類型來防止意外返回值? 好吧,新的 PHP 7 使開發人員能夠在返回類型聲明的幫助下提高他們的代碼質量。

下圖描述了一個非常簡單的用例,其中 foo() 函數應該返回一個數組。 在此處查看更復雜的示例

了解更多詳情 - 閱讀更多

您可以在 php.net 上找到各個主要 PHP 版本的更改日志,包括遷移指南(例如http://php.net/manual/en/migration54.php )。

關於向后兼容性,請查看以下鏈接: http : //php.net/manual/en/migration70.incompatible.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM