PHP 7.1 返回标量数组的类型



在最近迁移到 PHP 7.1 之后,我想利用更新的功能,例如返回类型。尝试返回标量类型的数组,使用 phpstorm 和 7.1 语法,似乎返回数组或对象数组是唯一接受的列表返回类型。

/**
* @return int[]
*/
public function findFoo(): int[] //syntax error

是否有严格定义标量返回类型的最佳实践,例如此示例中的整数数组?

对于当前的数组实现,它需要在运行时检查所有数组元素,因为数组本身不包含类型信息。

所以使用这个:

/**
* @return array
*/
public function findFoo(): array //syntax error

由于 PHP 数组像变量一样是"多类型"的,因此您无法定义数组的类型。

也就是说,您必须将返回类型定义为array

/**
* @return array
*/
public function findFoo(): array

这将是一个有效的代码。

最新更新