PHP 8 Beta 测试已经开始

由...所提交 PHP 8 编程语言新分支的第一个测试版。该版本计划于 26 月 7.4.9 日发布。 与此同时,PHP 7.3.21、XNUMX 和
7.2.33,消除了累积的错误和漏洞。

创新 PHP 8:

  • 包容 即时编译器,使用它可以提高生产力。
  • Поддержка 命名函数参数,允许您将与名称相关的值传递给函数,即您可以按任意顺序传递参数并定义可选参数。 例如,“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

添加评论