方法声明后的冒号是什么意思?

54
public function getRecords(int $id): array;

大家好,请问这个 PHP 接口中的方法声明中的冒号是什么意思?这是 PHP 7 的语法吗?这里的数组是什么意思?方法必须返回数组还是其他什么?

2个回答

56

1
只需注意在PHP 7中 ; 并不是新的,对于接口中定义的任何方法都需要它。问题中的新语法是返回类型声明的 : array - nerdlyist

54

这些在PHP7中被称为返回类型声明。它表示函数返回的值的类型,不仅限于数组。例如,您可以使用floatint或甚至您自己的类:

class MyClass { }

function something(): MyClass {
    return new MyClass();
}
这些不仅仅是为了可读性。如果该函数返回的类型与指定的类型不同,则该值将被强制转换为指定的类型。如果无法强制转换,或者启用了严格模式,将抛出类型错误。

3
感谢进一步解释。 - Nick Rolando

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接