我发现这行代码在运行PHP7.4的服务器上是有问题的:
public function expiresAfter(int|DateInterval|null $time);
我得到一个ParseError, PHP期望一个变量。在参考中找不到这个符号的用法-这个符号在PHP中是什么意思?
这里的竖条是什么意思?也有一种方法重写这个,使它与PHP7.4工作?
这些是联合类型(PHP8新增):
联合类型是两种或两种以上类型的集合,表明可以使用其中任何一种类型。
的例子:
public function foo(Foo|Bar $input): int|float;
就像或可以用作输入参数的对象/类型的条件。在本例中,您可以使用Foo或Bar作为输入参数,但不能使用其他参数。
如果你想让你的代码在PHP7.4上工作,只需像这样删除类型:
public function foo($input);
来源:https://stitcher.io/blog/new-in-php-8 union-types-rfc