方法声明后冒号?

Vik*_*ast 36 php php-7

public function getRecords(int $id): array;
Run Code Online (Sandbox Code Playgroud)

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

fir*_*ire 33

是的,这是PHP 7中引入的新语法,用于声明该方法返回一个数组.

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


MrC*_*ode 26

这些在PHP7 中称为返回类型声明.它指示函数返回的值的类型,并且它不限于数组.例如,您可以使用float,int甚至是您自己的类:

class MyClass { }

function something(): MyClass {
    return new MyClass();
}
Run Code Online (Sandbox Code Playgroud)

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

  • 感谢进一步的解释。 (3认同)