2017-03-06 107 views
0

假設我開發了任何大型Web應用程序。將PHP從一個版本遷移到另一個版本

例如PHP提供的字符串或數組功能

說我使用「排序」數組函數

如果他們不建議使用這新版本。然後,對這種類型的函數使用包裝器(實用程序)類是很好的。所以在一個地方很容易修改。

有人請指教?

+0

版本升級不起作用。如果他們會貶低某些東西,他們會在未來幾個月宣佈它並在很長一段時間內支持它,然後纔會被語言消滅。只要你不援引可憐的老圖書館,你就會很好。他們不能無故棄用'sort' –

回答

0

首先,我懷疑sort()永遠不會被棄用。這非常重要。

一般而言,PHP內核的一部分功能被棄用或刪除是非常罕見的。發生這種情況時,它通常是三個原因造成的:那些已經被廢棄了很久

  • 他們都老了別名(如mysqli_fetch()是爲mysqli_stmt_fetch()一個別名,並最終移除)或冗餘功能(例如call_user_method(),它在PHP 4.1中已棄用,但只在PHP 7中刪除) - 通常這些標記清楚標記,您應該避免使用推薦的替代方法。
  • 它們與刪除的.ini設置相關聯,例如, set_magic_quotes_runtime()。由於大多數具有專用功能的ini設置(與使用ini_set()相比)或者是基礎設置(例如error_reporting())或已被刪除/棄用,因此現在可能確實非常少見。
  • 它們是已被完全刪除的擴展的一部分(通常意味着移動到PECL repository)。在這種情況下,整個功能都消失了,處理這個問題的最好方法是手動安裝擴展或編寫一個替代被刪除功能的填充程序。

有少數例外以上,但一般功能去除是非常罕見的,所以包裝,像這樣的單個功能實際上會導致比簡單地清除處理髮生時更多的工作。還有一個很長的時期,一個函數在被移除之前會被標記爲不推薦使用,所以通常有足夠的時間來處理這個問題。

此外,它實際上很容易處理刪除的功能(這是最簡單的向後兼容性破壞之一)。通常情況下,只需使用function_exists()即可檢測到該功能缺失,如果不存在,請聲明您自己的版本。如果這不是微不足道的,你通常會在網上找到一個例子,其中有人已經解決了這個問題。

[更棘手的問題是,如果突然需要應用程序運行在比以前版本更早的PHP版本上運行,那麼功能和語法可能還不存在。強烈建議您在開始工作之前仔細挑選最低支持版本!​​]

相關問題