PHP8:竖线与一个类型?

  • 本文关键字:一个 类型 PHP8 php
  • 更新时间 :
  • 英文 :


我发现这行代码在运行PHP7.4的服务器上是有问题的:

public function expiresAfter(int|DateInterval|null $time);

我得到一个ParseError, PHP期望一个变量。在参考中找不到这个符号的用法-这个符号在PHP中是什么意思?

这里的竖条是什么意思?也有一种方法重写这个,使它与PHP7.4工作?

这些是联合类型(PHP8新增):

联合类型是两种或两种以上类型的集合,表明可以使用其中任何一种类型。

的例子:

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

就像可以用作输入参数的对象/类型的条件。在本例中,您可以使用FooBar作为输入参数,但不能使用其他参数。

如果你想让你的代码在PHP7.4上工作,只需像这样删除类型:

public function foo($input);

来源:https://stitcher.io/blog/new-in-php-8 union-types-rfc

最新更新