目錄
1. 不向後相容的變更" >1. 不向後相容的變更
首頁 頭條 PHP7.2 版本效能介紹

PHP7.2 版本效能介紹

May 14, 2018 pm 01:49 PM
php 介紹

本文主要和大家詳細介紹PHP7.2 版本效能,希望能幫助大家對PHP7.2有更清晰的認識。

1. 不向後相容的變更

Core:

  • 對於封閉資源來說,gettype()函數將傳回# resource(closed),取代先前的unknown type#。

  • 對於__PHP_Incomplete_Class類別物件來說,#is_object ()函數將傳回true。

  • 移除對Netware作業系統的支援。

  • array型別轉換成object型別((object)settype() )時,將把整數鍵轉換成屬性名,這修復了先前版本的數字鍵不能作為屬性名的問題。

  • object型別轉換成array型別((array)settype() )時,以及物件的屬性對應到陣列中(get_object_vars()#)時,會把整數屬性轉換成數字鍵,這修正了先前版本的整數屬性不可存取的問題。

  • 對未定義常數的非限定性引用將導致一個waring級別的錯誤,取代之前的notice級別,之後的版本會是error級別的錯誤。

  • 支援的最低的Windows版本是Windows 7和Windows Server 2008 R2。

  • 取消了原生trait屬性值的相容性檢查行為。

  • object#將不能被用作類別名稱。

BcMath

  • fmod()函數一樣,bcmod()函數取消了取模運算(%),也就是數值的小數部分截斷變成整數。例如:bcmod('4','3.5')將回傳0.5而不是1。

Hash

  • hash_hmac ()hash_hmac_file()hash_pbkdf2()以及hash_init() (options參數為HASH_HMAC時),這些函數將不再支援非加密的雜湊函數。

JSON

  • json_decode()函數的第二個參數assoc是null時,options支援選項中的JSON_OBJECT_AS_ARRAY會啟用,在之前的版本中這個參數是我們一直忽略的。

Session

  • 。除了register_globals相關的程式碼,"!"可以用在$_SESSION##的鍵名中。

  • session#被用來正確的管理會話狀態,禁止無效操作,當程式碼有問題時將會觸發該變化。如果你不幸遇到了這個問題,這表示你的程式碼是有問題的。

    • sesseion_start()session_status()session_regenerate_id(),這些函數被用來設定或傳回正確的會話狀態。

    • session_unset()session_write_close()/ session_commit()session_abort()session_reset(),這些函數傳回從沒有傳回值變成返回布林值。他們允許允許空的參數,並且會對這些空的檢查進行檢查。

    • session_start()session_set_cookie_params()session_name()session_module_name()session_set_save_handler()##session_regenerate_id()session_cache_limiter()session_cache_expire()#session_cache_expire()#,session_unset()session_destroy()session_write_close()#/# session_commit()

    • session_reset()
    • ,這些函數會禁止無效的會話狀態和http頭狀態,傳回正確的布林值或數值。 session.name#,session.save_pathsession.cookie_lifetime,session.cookie_pathsession.cookie_domainsession.cookie_httponlysession.cookie_securesession.use_cookiessession.use_only_cookiessession.use_strict_modesession.referer_check session.cache_limitersession.cache_expiresession.lazy_write#,session. save_handlersession.serialize_handlersession.gc_probabilitysession.gc_piorsession.gc_maxlifetime,這些ini的值的設定需透過

    • ini_set()
    • 函數的成功調用,無效的ini修改操作將不會成功。 由於會話能夠被正確管理(session_start()),部分##E_ERROR 層級的錯誤訊息將轉換成

      E_WARNING
    • 等級。

    • 會話將不再被無效的、無用的會話初始化

      當頭部訊息已經被傳送,此時去設定新的ini值將無效(透過session_name()session_module_name()session_save_path()session_cache_limiter()

      session_cache_expire()

      這些函數)。


      現在這些正確的行為會影響到cli命令列模式中管理會話的狀態。使用輸出緩衝,就像是在網頁應用程式那樣將解決在cli腳本下的問題。

Standard自7.1版本以來,在64位元機器上,同一個種子的mt_rand()

rand()

產生的隨機數順序可能會不一樣。

2.新功能

    Core
  • ######當重寫一個方法和介面時,其參數類型是可省略的。這遵從了里氏平衡原則的參數類型的逆變。 ######
  • 允許繼承後的抽象類別來重寫被繼承的抽象類別的抽象方法。

  • 允許分組命名空間的尾部逗號。

  • 物件類型的註解是允許的。

DBA

  • 實現了對LMDB後端的支援。

JSON

  • json_encode()json_decode()增加了對JSON_INVALID_IGNOREJSON_INVALTD_UTF8_SUBSTITUTE的支持,取代了先前的utf-8編碼的無效型別。

OCI8

  • 增加了Oracle資料庫的透明應用故障切換(TAF)的支援。

PCRE

  • 增加了內部選項(j)修改本地的PCRE_DUPNAMES選項。

Sodium

  • 新的加密擴充。

SQLite3

  • 實現了寫入BLOBs。

Standard

  • #當使用libargon2來編譯PHP時,簡化的雜湊密碼的API已更新,用來支援Argon2。

  • windows平台支援proc_nice()函數。

Zip

  • 讀/寫入加密存檔,依賴libzip 1.2.0,   新的方法:        ZipArchive:: setEncryptionName($ name,$ method ,$ password]);   新的常數:       ZipArchive:: EM_NONE       Zip ipArchive:: EM_AES_256 

  • 從zip流上下文接受"密碼"。

  • ZipArchive實作可計數,增加ZipArchive::count()#方法。

3. SAPI模組變更

4. 廢棄的功能

以下是將要在php8.0版本中廢棄的功能。

Core

  • #設定檔的磁軌錯誤將會被廢棄。

  • __autoload()將被廢棄,使用spl_autoload_register() 來替代。

  • (unset)將被廢棄,此項目變更不會影響unset ($var)的語言結構。

  • #create_function()函數將被廢棄,並使用匿名函數來取代。

  • each()函數結構將被廢棄,使用foreach()循環來替代。

Exif

  • read_exif_data ()將被廢棄,使用exif_read_data()#來取代。

GD

#
  • png2wbmp()#和jpeg2wbmp()將會被廢棄。

GMP

  • gmp_random ()將被廢棄,使用gmp_random_bits()或()來取代。

Intl

  • INTL_IDNA_VARIANT_2003 將被廢棄,使用INTL_IDNA_VARIANT_UTS46來取代。

Mbstring

  • mbstring .func_overload的設定檔將被廢棄。

Standard

  • #參數來呼叫parse_str()將會被廢棄。

  • 用字串參數來呼叫assert()將被廢棄,並使用常規表達式來取代。

5. 變更的函數

Standard

  • 當設定為PASSWORD_ARGON2I時,password_hash()可以產生Argon2散列。

  • 當使用PASSWORD_ARGON2I時,以下這些選項可能預設被設定:memory_costtime_cost。這些選項的預設值是PASSWORD_ARGON2_DEFAULT_MEMORY_COST。如果沒有設置,則預設是PASSWORD_ARGON2_DEFAULT_TIME_COSTPASSWORD_ARGON2_DEFAULT_THREADS

  • #password_verify()可以驗證Argon2雜湊。

  • #password_get_info()password_needs_rehash()可以接受Argon2哈希值。

  • mail()/mb_send_mail()接受陣列$extra_header 。數組參數是針對RFC 2822進行檢查的。 陣列格式: php $extra_headers = [ 'Header-Name' => 'Header value', 'Multiple' => ['One header','Another header'], 'Multiline' = " FirstLine\r\n SecondLine", ]; 

  • #當傳遞一個無效參數時,count() 函數將拋出warning警告。

  • 大端和小端的位元組序列下,pack() unpack()支援float和double型別。

  • number_format()函數將確保零值不包含負號。

XML

  • utf8_encode ()utf8_decode() 函數已被當作字串移至標準擴充。

6. 新增的函數

Core

  • 增加stream_istty()

  • #增加sapi_windows_vt100_support()

DOM

  • DomNodeList 實作了Countable,增加了DomNodeList::count()#。

  • DOMNamedNodeMap實作了Countable,增加了DOMNamedNodeMap :: count()

FTP

  • #增加了ftp_append()

GD

  • #增加了imagesetclip()imagegetclip()

  • 增加了imageopenpolygon()

  • 增加了#imageresolution()

  • 增加了#imagecreatefrombmp()imagebmp( )

Hash

  • #增加了hash_hmac_algos()

Mbstring

  • 增加了mb_chr()mb_ord()

  • 增加了#mb_scrub

OCI8

  • 增加了oci_register_taf_callback()oci_unregister_taf_callback()對Oracle資料庫的透明應用故障切換(TAF)的支援。

Sockets

  • 增加了socket_addrinfo_lookup()socket_addrinfo_connect()socket_addrinfo_bind()#socket_addrinfo_bind()

#socket_addrinfo_explain()

  • SPL

    增加了
spl_object_id()

#。

7. 新增的類別與介面

8. 移除的擴充與SAPI

  • Mcypt

#已廢棄的mcrypt擴充已移至PECL。

    libmcrypt自2007年開始就沒有維護,不建議繼續使用這個擴充。
  • 9. 其他對擴充功能的變更
  • ##EXIF

    #增加了對以下格式的exif標籤支援:Samsung,DJI,Panasonic,Sony,Pentax,Minolta,Sigma/Foveon, AGFA,Kyocera,Ricoh & Epson。

exif_read_data()
  • exif_t​​ humbnail()支援第一個參數是傳遞流。

  • GD
  • #。除了
  • --enable-gd-native-ttf

    設定選項。

imagegd()

將truecolor影像儲存為真彩色影像,取代了先前的轉換為調色板。

  • 在使用系統libgd編譯時,

    mageantialias()也支援。

  • Mbstring

    ######mb_check_encoding ()######接受陣列參數,遞迴檢查其鍵和值。 ########################mb_convert_encoding()######接受陣列參數,其值的編碼可以遞歸地轉換。 ######

PDO_OCI

  • --with-pdo-oci 的設定語法將不再Oracle客戶端。

pdo_sqlite

  • 使用sqlite3_prepare_v2()sqlite3_close_v2()來取代他們之前的函數。

10. 新增全域常數

Core

  • PHP_FLOAT_DIG

  • ##PHP_FLOAT_EPSILON

  • #PHP_FLOAT_MIN

  • #PHP_FLOAT_MAX

  • #PHP_OS_FAMILY

Fileinfo

  • FILEINFO_EXTENSION

GD

  • IMG_EFFECT_MULTIPLY

  • IMG_BMP

PCRE

  • PREG_UNMATCHED_AS_NULL

  • Standard:

#PASSWORD_ARGON2_DEFAULT_MEMORY_COST

PASSWORD_ARGON2_DEFAULT_TIME_COST

#PASSWORD_ARGON2_DEFAULT_TIME_COST#PASSWORD_ARGON2_DEFAULT_TIME_COST

  • ##PASSWORD_ARGON2_DEFAULT_THREADS

    #PASSWORD_ARGON2I

#11. INI檔案處理的變更

  • sql.safe_mode

該INI選項已移除。

  • realpath_cache_size

#預設是4096k。

  • opcache.fast_shutdown

該INI選項已經移除。 fast_shutdown處理的一種變型已經被整合到PHP內核,在生產環境中將預設為開啟。

12. Windows支援

  • 支援VT100控制台模式。


13. 其他變更

編譯系統

############autoconf最低支援版本是2.64。 ###############相關推薦:############Win10下如何安裝IIS、MySQ、nginx、php7.1.7? ############PHP7中新功能簡介#############17 效能翻倍的關鍵######################################
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。