方法声明后的冒号?

时间:2016-10-31 16:50:38

标签: php php-7

public function getRecords(int $id): array;

嗨,有人能告诉我冒号在这里做什么,在PHP接口里面的这个方法声明?这是PHP 7语法,这里有什么数组?方法必须返回数组或其他东西?

2 个答案:

答案 0 :(得分:25)

是的,它在PHP 7中引入了新语法来声明该方法返回一个数组。

http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration

答案 1 :(得分:20)

这些在PHP7中称为Return Type declarations。它指示函数返回的值的类型,并且不限于数组。例如,您可以使用floatint甚至是您自己的类:

class MyClass { }

function something(): MyClass {
    return new MyClass();
}

这些不仅仅是为了提高可读性。如果函数返回的值不是指定的类型,则该值将强制转换为指示的类型。如果无法强制或启用严格模式,则会抛出类型错误。