我遇到了一个具有以下方法的类:
class Period
{
/** @var \DateTime */
public $startDate;
/** @var \DateTime */
public $endDate;
public static function create(DateTime $startDate, $endDate): Period
{
return new static($startDate, $endDate);
}
}
我的问题是关于创建后的部分(...) - ":期间"。我以前从未见过这个,也找不到任何关于它的文档(主要是因为我不知道该找什么)。任何人都可以对此有所了解吗?
答案 0 :(得分:2)
这是PHP 7及更高版本中的新功能。它被称为返回类型声明。
在您发布的示例中,需要方法create
才能返回Period
的对象。
一个更简单的例子是:
function giveMeAnInt() : int {
return 1;
}
以上代码有效,因为它返回一个整数。
function giveMeAnInt() : int {
return "Hello";
}
这是无效的并且会返回致命错误“FATAL ERROR未捕获TypeError:giveMeAnInt()的返回值必须是整数类型,返回字符串”
答案 1 :(得分:1)
看起来这段代码属于php(class)的时间范围api,更多信息http://period.thephpleague.com/
示例:创建表示给定周的新实例:
<?php
public static Period::createFromWeek(int $year, int $week): Period
...
$ year 参数必须是有效年份;
$ week 参数必须是有效的一周(1到53之间);