7.2.33,消除了累积的错误和漏洞。
主
-
包容 即时编译器 ,使用它可以提高生产力。 -
Поддержка 命名函数参数,允许您将与名称相关的值传递给函数,即您可以按任意顺序传递参数并定义可选参数。 例如,“array_fill(start_index: 0, num: 100, value: 50)”。 - 调用方法时
允许 使用“?”运算符,仅当该方法存在时才允许您发起调用,从而避免了返回“null”值的不必要检查。 例如,“$dateAsString = $booking->getStartDate()?->asDateTimeString()”; - Поддержка
联合类型 ,定义两种或多种类型的集合(例如,“public function foo(Foo|Bar $input): int|float;”)。 - Поддержка
属性 (注释)允许您将元数据(例如类型信息)绑定到类,而无需使用 Docblock 语法。 - 表达支持
匹配 ,与 switch 不同,它可以返回值,支持组合条件,使用严格的类型比较,并且不需要“中断”规范。$结果=匹配($输入){
0 => “你好”,
'1', '2', '3' => “世界”,
}; -
缩短语法 类定义,允许您组合构造函数和属性的定义。 - 新的返回类型 -
静止 . - 新类型-
杂 ,可用于判断函数是否接受不同类型的参数。 - 表达
扔 来处理异常情况。 -
弱映射 创建可以在垃圾收集期间牺牲的对象(例如,存储不必要的缓存)。 -
机会 对对象使用表达式“::class”(类似于调用 get_class())。 -
机会 未绑定到变量的异常的 catch 块中的定义。 -
机会 在函数参数列表中的最后一个元素后面留下一个逗号。 - 新界面
可串接 标识任何可以转换为字符串的字符串类型或数据(可以使用 __toString() 方法)。 - 新功能
海峡包含() ,strpos 的简化类似物,用于确定子字符串的出现,以及函数 str_starts_with() 和 str_ends_with() 用于检查字符串开头和结尾的匹配。 - 新增功能
fdiv() ,它执行除法运算,除以零时不会抛出错误。 -
改变了 字符串连接逻辑。 例如,表达式 'echo "sum:" 。 $a + $b' 之前被解释为 'echo ("sum: " . $a) + $b',在 PHP 8 中将被视为 'echo "sum: " 。 ($a + $b)'。 -
收紧 检查算术和位运算,例如表达式“[] % [42]”和“$object + 4”将导致错误。 -
实施的 一种稳定的排序算法,其中相同值的顺序在不同的运行中得以保留。
来源: opennet.ru