电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP 8新特性簡介

瀏覽:126日期:2022-09-09 11:49:47

PHP 8新特性

新的主要PHP版本PHP 8預計將于2020年底發布。它現在處于非?;钴S的開發階段,所以在接下來的幾個月里,事情可能會發生很大的變化。

在這篇文章中,我將持續更新預期的內容列表:新特性、性能改進和重大變化。因為PHP 8是一個新的主版本,所以您的代碼被破壞的幾率更高。如果你一直在更新最新的版本,升級應該不會太困難,因為大多數有破壞性的更改在7之前就已經廢棄了。*版本。

除了中斷更改之外,PHP 8還帶來了一些不錯的新特性,比如JIT編譯器和union類型;還有更多!

Union types:聯合類型

考慮到PHP的動態類型化特性,在很多情況下聯合類型是有用的。聯合類型是兩個或多個類型的集合,這些類型表示其中一個可以使用。

public function foo(Foo|Bar $input): int|float;

注意,void永遠不能是union類型的一部分,因為它表示“根本沒有返回值”。此外,可以使用|null來編寫可為空的聯合,也可以使用現有的?符號:

public function foo(Foo|null $foo): void;public function bar(?Bar $bar): void;

JIT

即時編譯器承諾顯著的性能改進,盡管并不總是在web請求的上下文中。目前還沒有任何準確的基準,但它們肯定會到來。

Static return type:靜態的返回類型

雖然已經可以返回self,但靜態類型直到PHP 8才成為有效的返回類型。考慮到PHP的動態類型特性,這一特性對許多開發人員都很有用。

class Foo{ public function test(): static { return new static(); }}

Weak maps

在PHP 7.4中添加的weakrefs RFC的基礎上,在PHP 8中添加了WeakMap實現。弱映射包含對對象的引用,這并不會阻止那些對象被垃圾收集。

以orm為例,它們通常實現保存對實體類的引用的緩存,以改進實體之間關系的性能。這些實體對象不能被垃圾回收,只要這個緩存有一個對它們的引用,即使緩存是唯一引用它們的東西。

如果這個緩存層使用弱引用和映射,那么PHP將在沒有其他對象引用它們時對這些對象進行垃圾收集。尤其是orm,它可以在一個請求中管理數百個(如果不是數千個)實體;弱映射為處理這些對象提供了一種更好的、對資源更友好的方法。

下面是弱映射的樣子,一個來自RFC的例子:

class Foo { private WeakMap $cache; public function getSomethingWithCaching(object $obj): object { return $this->cache[$obj] ??= $this->computeSomethingExpensive($obj); }}

::class on objects

一個小而有用的新特性:現在可以在對象上使用::class,而不必在對象上使用get_class()。它的工作方式與get_class()相同。

$foo = new Foo();var_dump($foo::class);

Stringable interface

Stringable接口可用于鍵入提示任何字符串或實現了 tostring()的內容。而且,無論何時類實現了 tostring(),它都會在后臺自動實現接口,不需要手動實現。

class Foo{ public function __toString(): string { return ’foo’; }}function bar(Stringable $stringable) { /* … */ }bar(new Foo());bar(’abc’);

從接口創建DateTime對象

您已經可以使用DateTime:: createfromimmutabledatetime ($immutableDateTime)從一個datetime對象創建一個DateTime對象,但是另一種方法比較麻煩。通過添加DateTime::createFromInterface()和datetime::createFromInterface(),現在就有了一種將DateTime和datetime對象相互轉換的通用方法。

DateTime::createFromInterface(DateTimeInterface $other);DateTimeImmutable::createFromInterface(DateTimeInterface $other);

重新定義引擎的警告

許多以前只觸發警告或通知的錯誤現在已經轉換為正確的錯誤。以下警告已更改。

Undefined variable: Error exception instead of notice Undefined array index: warning instead of notice Division by zero: DivisionByZeroError exception instead of warning Attempt to increment/decrement property ‘%s’ of non-object: Error exception instead of warning Attempt to modify property ‘%s’ of non-object: Error exception instead of warning Attempt to assign property ‘%s’ of non-object: Error exception instead of warning Creating default object from empty value: Error exception instead of warning Trying to get property ‘%s’ of non-object: warning instead of notice Undefined property: %s::$%s: warning instead of notice Cannot add element to the array as the next element is already occupied: Error exception instead of warning Cannot unset offset in a non-array variable: Error exception instead of warning Cannot use a scalar value as an array: Error exception instead of warning Only arrays and Traversables can be unpacked: TypeError exception instead of warning Invalid argument supplied for foreach(): TypeError exception instead of warning Illegal offset type: TypeError exception instead of warning Illegal offset type in isset or empty: TypeError exception instead of warning Illegal offset type in unset: TypeError exception instead of warning Array to string conversion: warning instead of notice Resource ID#%d used as offset, casting to integer (%d): warning instead of notice String offset cast occurred: warning instead of notice Uninitialized string offset: %d: warning instead of notice Cannot assign an empty string to a string offset: Error exception instead of warning

以上就是PHP 8新特性簡介的詳細內容,更多關于php 8新特性的資料請關注好吧啦網其它相關文章!

標簽: PHP
相關文章:
主站蜘蛛池模板: 涂层测厚仪_漆膜仪_光学透过率仪_十大创新厂家-果欧电子科技公司 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 电动高尔夫球车|电动观光车|电动巡逻车|电动越野车厂家-绿友机械集团股份有限公司 | 济南轻型钢结构/济南铁艺护栏/济南铁艺大门-济南燕翔铁艺制品有限公司 | 绿叶|绿叶投资|健康产业_绿叶投资集团有限公司 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 航拍_专业的无人机航拍摄影门户社区网站_航拍网 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 丹佛斯变频器-Danfoss战略代理经销商-上海津信变频器有限公司 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 蜜蜂职场文库_职场求职面试实用的范文资料大全 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 哈尔滨治「失眠/抑郁/焦虑症/精神心理」专科医院排行榜-京科脑康免费咨询 一对一诊疗 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 智能楼宇-楼宇自控系统-楼宇智能化-楼宇自动化-三水智能化 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 小小作文网_中小学优秀作文范文大全 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 宜兴紫砂壶知识分享 - 宜兴壶人 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | ICP备案查询_APP备案查询_小程序备案查询 - 备案巴巴 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 房在线-免费房产管理系统软件-二手房中介房屋房源管理系统软件 | 南京办公用品网-办公文具用品批发-打印机耗材采购 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 卷筒电缆-拖链电缆-特种柔性扁平电缆定制厂家「上海缆胜」 | 铝合金脚手架厂家-专注高空作业平台-深圳腾达安全科技 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 |