是否可以确定函数中返回数组的元素类型?
例如,如果元素应该是 float 的:
class test{
/**
* This should return an array containing float values,
* but I get a fatal error instead
*/
public static function doStuff() : float[] {
return [ 10.3, 12.8 ];
}
}
最佳答案
不幸的是,您无法像这样对数组的内容进行类型检查。
如果您确实坚持这样做,您可以创建自己的集合类来包装数组并确保其元素的类型:
class FloatCollection
{
private $array = [];
public function __construct($array = [])
{
foreach ($array as $value) {
$this->add($value);
}
}
public function add(float $value)
{
$this->array[] = $value;
}
...
}
然后您可以输入检查:
public static function doStuff() : FloatCollection
{
return new FloatCollection([10.3, 12.8]);
}
但是对于您想要实现的目标来说,这可能是很多不必要的工作。
关于php - 我们可以确定 php 中数组元素的返回类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36628970/