成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

PHP 8.2 更新啦!一文速覽新功能

PHP 8.2 更新速覽

Created time: December 8, 2022 10:50 PM

Last edited time: December 8, 2022 11:58 PM

轉自 PHP 8.2 Highlights: What’s New and Changed

? PHP 8.2 帶來了類型系統改進、只讀 readonly 類、敏感參數隱藏支持、新的隨機 random 擴展,以及包括簡化和現代化 PHP 在內的多項功能。

PHP 8.2 是 PHP 邁入現代化的重要里程碑。除了令人興奮的新功能和改進之外,PHP 8.2 通過棄用動態屬性支持、對 INI 配置值發出警告和修復一系列數組排序和字符串轉換的遺留行為。【推薦:PHP視頻教程】

類型系統改進

PHP 8.2 解決了數個原有類型系統的短處和限制,讓 PHP 項目得以擁有更好的類型安全性。這包括添加對 true 類型的支持,并允許將 nullfalse 用作獨立類型,同時增加了對 DNF 類型的支持。

Disjoint Normal Form (DNF) 類型支持 – 在 PHP 8.2 中,開發者可以組合使用聯合 union 類型(PHP 8.0)和交集 intersection 類型(PHP 8.1),繼而允許聲明更加精確的參數、返回和屬性類型。

function process((HTMLRequest & RequestInterface) | APIRequest $request) {  // ...}
登錄后復制

(HTMLRequest & RequestInterface) | APIRequest 類型聲明表示 $request 必須是 APIRequest 的示例,或者實現了 HTMLRequestRequestInterface

另一方面,在加入了 truefalse 獨立類型后,可以將固定返回值的 bool 類型更改為具體的類型。

function alwaysReturnsFalse(): false {}  function alwaysReturnsNull(): null {}  function alwaysReturnsTrue(): true {}
登錄后復制

在過去,我們已經可以通過 string|null 的形式來定義可以為空的參數,而在 PHP 8.2 中,我們將可以直接使用 null 作為一個獨立類型。

只讀 readonly

PHP 8.1 添加了只讀屬性支持,只讀類型只能在初始化時被賦值一次,其后的修改會被 PHP 阻止。

而 PHP 8.2 將只讀屬性延申到只讀類中。當一個類被聲明為只讀類后,它的所有屬性都會被自動聲明為只讀。此外,它還會確保只讀類中的所有屬性都帶有類型聲明。

// PHP 8.2 readonly class User {     public string $username;     public int $uid; }  // PHP 8.1 等效寫法 class User {     public readonly string $username;     public readonly int $uid; }
登錄后復制

全新隨機 random 擴展

縱觀 PHP 歷史,它支持了各種隨機數生成器(RNG)。每種生成器都具有不同的性能、使用場景和安全性。而 PHP 8.2 將所有 RNG 相關的功能重構成名為 random 新擴展。

random 擴展與現有的 API 保持兼容,同時提供相同的功能,因此 rand mt_rand random_bytes random_int 等函數可以繼續工作,沒有任何變化。但 random 擴展提供了全新的面向對象的 API 來生成具有模塊化架構的隨機數,令模擬 RNG 和提供新的 RNG 變得更加容易,使測試項目更加安全且便利。

Trait 中的常量

PHP 8.2 允許在 Trait 中定義常量。當然,你不能直接訪問 Trait,但 Trait 中的常量會在被繼承時成為類常量。

trait FooBar {     const FOO = 'foo';     private const BAR = 'bar';     final const BAZ = 'baz';     final protected const QUX = 'qux'; }  class Test {     use FooBar; }  echo Test::BAZ; // 'bar'
登錄后復制

需要注意的是,Trait 中的常量不可以和其他 Trait 或類中的常量沖突。

支持隱藏敏感參數

PHP 8.2 新增了 #[SensitiveParameter] 參數注解,用于在錯誤和堆棧信息中隱藏實際值。

接受密碼、私鑰或其他敏感信息的函數可以使用 #[SensitiveParameter] 來隱藏具體值。如果發生錯誤或異常,對應的值會被替換為 SensitiveParameterValue 對象。

PHP 的內置函數(如 password_hashpassword_verify)已使用 #[SensitiveParameter] 參數注解。

- function passwordHash(string $password)  {  + function passwordHash(#[SensitiveParameter] string $password)  {         debug_print_backtrace();     }     passwordHash('hunter2');
登錄后復制

array(1) {     [0]=> array(4) {         ["file"]=> string(38) "..."         ["line"]=> int(9)         ["function"]=> string(3) "foo"         ["args"]=> array(1) { -           [0]=> string(38) "hunter2" +           [0]=> object(SensitiveParameterValue)#1 (0) {}         }     } }
登錄后復制

新函數和類

解析 INI 容量 ini_parse_quantity

ini_parse_quantity('256M'); // 268435456
登錄后復制

保持 CURL 連接 curl_upkeep

PHP 8.2 Curl 擴展中的 curl_upkeep 函數觸發底層 Curl 庫運行必要的任務以保持 Curl 連接處于活動狀態。 此函數最常見的用例是通過定期調用 curl_upkeep 函數來保持 HTTP 持久連接 (Keep-Alive)。

獲取加密密鑰長度 openssl_cipher_key_length

在 PHP 8.2 OpenSSL 中,有一個名為 openssl_cipher_key_length 的新函數,它返回任何受支持的 OpenSSL 密碼所需的密鑰長度(以字節為單位)。

此功能消除了對 OpenSSL 密碼操作所需密鑰長度進行硬編碼的需要。

openssl_cipher_key_length("CHACHA20-POLY1305"); // 32  openssl_cipher_key_length("AES-128-GCM"); // 16  openssl_cipher_key_length("AES-256-GCM"); // 32
登錄后復制

重置記錄的內存使用峰值 memory_reset_peak_usage

PHP 8.2 添加了一個名為 memory_reset_peak_usage 的新函數,用于重置由 memory_get_peak_usage 函數返回的峰值內存使用量。

這對于多次調用或迭代一個動作并且需要記錄每次調用的峰值內存使用量的應用程序很有幫助。 如果沒有 memory_reset_peak_usage 函數重置內存使用情況,memory_get_peak_usage 將會返回整個運行過程中的絕對峰值內存使用情況。

PHP 8.2 棄用情況

PHP 8.2 也帶來了相當一部分棄用。當語法、函數或特性被棄用時,PHP 會發出棄用通知,該通知不會中斷 PHP 應用,但會記錄到錯誤日志中。

棄用動態屬性

PHP 8.2 中最值得注意的棄用之一是它棄用了動態聲明的類屬性。雖然可以忽略錯誤,但建議在類中聲明類屬性,加上類型聲明就更好了。

class User {     public int $uid; }  $user = new User(); $user->name = 'Foo';
登錄后復制

Deprecated: Creation of dynamic property User::$name is deprecated in ... on
登錄后復制

許多古老的 PHP 應用程序很可能會受到此更改的影響,因為它們在擴展時往往不聲明類屬性,或者隨著變化多年來不斷發展。

當然了,選擇忽略或例外也是存在的:

  • 匿名類及其子類(stdClass

  • 具有 __get__set 魔術方法的類

  • 具有 #[AllowDynamicProperties] 注解的類

棄用 utf8_encodeutf8_decode 函數

PHP 8.2 終于棄用這兩名字跟實際效果不一致的函數,雖然名為 utf8 但實際上是 Latin 1 (ISO-8859-1)。

大多數使用這些函數的 PHP 項目往往沒有意識到這個問題。推薦的替代品包括 mbstringiconvintl 擴展以提供更好的功能。

棄用 ${var} 字符串格式

PHP 一直支持使用 foo {$bar} 模式的字符串變量插值,以及將美元符號放在大括號外的替代語法 foo ${bar}

在 PHP 8.2 中,將美元符號放在花括號外的替代語法已棄用。

已棄用 推薦替代
Hello ${name} Hello {$name}
Hello ${$var} Hello {$$var}

此外,PHP 8.2 還棄用了一些部分支持的 callable 模式和 Mbstring 擴展對 Base64、Uuencode、QPrint 和 HTML 實體編碼的處理。

php入門到就業線上直播課:立即學習
全程直播 + 實戰授課 + 邊學 + 邊練 + 邊輔導

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久亚洲AV午夜福利精品一区二| 久久久久久妓女精品影院| 久草玖玖玖爱在线资源| 久久久久高潮毛片免费全部播放 | 欧美最猛黑人XXXX黑人猛交9| 欧美猛少妇色XXXXX猛叫| 日韩乱码人妻无码系列中文字幕| 少妇无码AV无码专区在线观看| 性生生活30分钟免费| 亚洲无人区一码二码三码区别| 一二三四在线看日本高清| H无遮挡H无码黄3D漫画| 工口全彩H肉无遮挡无翼乌| 国产一二三四2021精字窝 | 青春草无码精品视频在线观看| 少妇搡BBBBⅩXX搡BBB| 亚洲AV最新天堂网址| 在公车被灌满JING液| 宝贝腿抬高点让我爽一点麻豆| 国产精品18久久久久久VR| 荫蒂每天被男人添| 丰满多毛的陰户视频| 国产夫妻CCCXXX久久久| 精品日产卡一卡二卡927| 免费无码又爽又刺激高潮的动态图| 日本熟妇人妻ⅩXXXXOO多毛| 亚洲 自拍 另类小说综合图区| 一本大道香蕉在线资源| 亚洲VA在线VA天堂VA不卡| 欧美黑人aAAAAAAa| 野花日本高清在线观看免费| 日本无人区码卡二卡三卡| 每天都在挨CAO中醒来H| 国产成人牲交在线观看视频| 无码AV中文字幕久久专区| 亚洲全部无码中文字幕| av色欲无码人妻中文字幕| 国产成人亚洲精品无码综合原创 | 拧花蒂尿用力按凸起喷水尿视频 | 色黄啪啪网18以下勿进| 亚洲精品TV久久久久久久久 | 中文字幕乱妇无码AV在线| 亚洲欧美日韩精品久久亚洲区| 95W乳液78WYW永久区域| 2019NV天堂香蕉在线观看| 国产成人精品人人做人人爽| 久久久久久精品免费免费软件| 欧美丰满大乳高跟鞋| 妺妺晚上扒我内裤吃我精子| 美美女高清毛片视频免费观看| 色狠狠色噜噜AV综合五区| 亚洲男人成人性天堂网站| 白嫖B站激活码2023| 精品人妻大屁股白浆无码| 欧美超大胆裸体XX视频| 亚洲AV成人在线播放| 阿娇张开两腿实干13分钟完整版| 极品少妇流白浆草莓视频| 日本少妇ASS浓精PICS| 亚洲一区二区三区成人片在线观看 | 欧美成人精品第一区二区三区| 性饥渴的农村熟妇在线视频| H无码精品动漫在线观看| 狠狠色噜噜狠狠狠777米奇| 日韩av在线一区二区| 一级伦奷片高潮无码看了5| 国产精品久久久久久影视不卡| 女子遭遇疯狂侵犯| 亚洲精品久久久久久中文字幕| 出租屋勾搭老熟妇啪啪| 蜜桃久久久久久精品免费观看| 性XXXXX大片免费视频| ンピースのエロス在线WWW| 久久精品国产自在天天线| 少女たちよ在线观看动漫在线观看| 中国老B亂伦AV| 黑人巨茎大战白人女40CM| 色噜噜人妻av无码| AV国内精品久久久久影院| 精品一区二区三区波多野结衣 | 一二三四在线观看免费高清视频| 国产剧情麻豆女教师在线观看| 人伦片无码中文字| 永久黄网站色视频免费观看APP| 国产午夜福利内射青草| 色欲AV无码中字乱人伦在线| 99精品国产福利在线观看| 久久精品女同亚洲女同| 亚洲AV无码久久精品蜜桃播放| 成人免费无码大片A毛片小说| 免费无码一区二区三区蜜桃| 亚洲日本VA午夜在线影院| 国产精品亚洲欧美大片在线观看| 日本少妇毛茸茸高潮| 综合无码成人AⅤ视频在线观看| 极品人妻系列少妇系列| 午夜亚洲乱码伦小说区69堂| 成人无码视频免费播放| 欧美黑人又大又粗又长久久久| 一区二区三区在线 | 欧洲| 韩国av一区二区| 无码人妻熟妇av又大又粗浪潮| 成年午夜免费AⅤ在线观看| 男人用嘴添女人私密视频| 一本久久综合亚洲鲁鲁五月天| 娇妻玩4P被3个男子伺候| 无人区码卡二卡乱码字幕| 国产SUV精品一区二区四| 日本五月天婷久久网站| TAP TAP下载官方正版| 男生白内裤自慰GV白袜男同| 真人作爱视频免费网站| 久久人人爽人人人人爽AV| 亚洲人成无码网WWW电影麻豆| 国内自拍视频一区二区三区| 无码一区二区三区不卡AV| 国产成人牲交在线观看视频| 撕开奶罩揉吮奶头免费视频| 对白脏话肉麻粗话AV| 日产亚洲一卡2卡3卡4卡网站 | 中文字幕乱码亚洲无线码三区 | 日本熟妇人妻XXXXX-欢迎您| 宝贝你下面喷潮了| 成人国产欧美大片一区| ZOOM与牛性胶ZOOM| 亚洲精品无码AV人在线观看| www.97少妇视频| 少妇高潮喷水正在播放| 中文字幕亚洲一区二区VA在线| 国产精华液一线二线三线| 欧美 亚洲 国产 另类| 亚洲AV无码乱码国产麻豆| CHINESE农村老妓女| 久久久久久国产精品无码超碰| 无套内谢孕妇毛片免费看看| 堕落女教师动漫全无修| 亚洲欧美韩国综合色| 国产一产二产三精华液| 亚洲AV中文无码乱人伦在线r▽| 黄桃AV无码免费一区二区三区 | 久久精品无码一区二区三区 | 高清国产天干天干天干| 天天摸天天碰天天添| 国产情侣一区二区三区| 亚洲AV无码一区二区高潮 | 狠狠躁夜夜躁AV网站色| 亚洲熟妇色XXXXX欧美老妇| 麻豆TV入口在线看| JΑPΑN丰满人妻HDXXXX| 日韩精品无码熟人妻视频| 国产精华精华液一二三区别| 亚洲AV日韩AV永久无码免下载| 精品人妻无码专区在中文字幕| 一边做饭一边躁狂怎么办呢69| 麻豆国产在线精品国偷产拍| JAPANESE国产在线看| 熟妇高潮一区二区精| 国产做床爱无遮挡免费视频| 亚洲熟妇无码久久精品疯| 内地CHINA高潮VIDEO| 成人午夜福利免费体验区| 小寡妇一夜要了六次| 久久久久久AV无码免费网站 | 国产另类TS人妖一区二区| 亚洲精品无码AV专区最新| 蜜臀98精品国产免费观看| 阿娇被躁120分钟视频| 无码国产精品一区二区免费式影视| 国内少妇人妻丰满AV| 中国XXXX真实偷拍| 日韩人妻不卡一区二区三区| 国产下药迷倒白嫩美女网站 | 免费一看一级毛片少妇丰满2| 餐桌下手指噗呲噗呲| 一本到无码AV专区无码| 亚洲欧美第一的日产SUV| 免费无遮挡禁18污污网站| 大肥女BBWBBWHD视频| 亚洲H成年动漫在线观看网站| 裸体欣赏ⅤIDE0SPH0TO| 俄罗斯老少配BBW| 亚洲精品9999久久久久无码 | 黑人高潮拔也拔不出来| 3D动漫精品啪啪一区二区免费| 三个媳妇一锅烩大团圆| 激情 小说 亚洲 图片 伦 | 欧美人与动牲交A欧美精品Z| 国产成人A码男人的天堂| 一本色道久久综合亚洲精品| 日韩精品一区二区三区中文| 黑人狂躁中国人AⅤ| Chinese45丰满成熟HD| 小SAO货大JI巴CAO死你H| 麻花豆传媒剧国产MV在线下载| 大菠萝APP福引导前往| 亚洲日本VA中文字幕| 日韩毛片AV无码免费一区二区三| 精品女同一区二区三区免费站| 爱丫爱丫影院在线看免费| 亚洲成色WWW久久网站|