php - 我们可以确定 php 中数组元素的返回类型吗?

标签 php function return-type php-7

是否可以确定函数中返回数组的元素类型?

例如,如果元素应该是 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/

相关文章:

php - 未选中复选框时的Jquery目标父节点

php - 我可以使用什么在 PHP 中进行快速临时存储

php - MySQL my.cnf 自动重置

arrays - 无法将变体数组分配给类型化数组

c++ - 如何获得两种不同类型相乘的结果类型?

php - 伊伊 1.1.17 : CSRF token validation fails with POST via Angular Controller

c# - 函数包装另一个函数

python - 在 switch 字典中执行函数

java - 这是异常处理滥用吗?

c++ - 虚函数的不同返回类型