1

这是一个非常简化的例子:

function getList<Tx>():Vector<Tx> {

    $values = ['1','2','3','4','5'];
    $list = Vector{};

    foreach ($values as $value) {
        $list->add((Tx) $value);
    }

    return $list;
}

例如,我知道 $values 是数字的,源自数据库获取结果或其他内容,但存储为字符串。所以我想将它们转换为 int through

Vector<int> $myList = $this->getList<int>();

不支持对象强制转换。尝试“if ($var instanceof Tx)”或“invariant($var instanceof Tx, ...)”。(命名[2055])

getListInt():Vector<int>那么在这种情况下,我应该为不同的类型使用两个函数getListString():Vector<string>吗?或者我确实错过了什么?

4

1 回答 1

-1

作为一种解决方法,而不是真正的hacklang答案,但我会尝试在mysql中解决这个问题。为什么不直接在 mysql 查询中转换它?

SELECT CONVERT(field_as_string,UNSIGNED INTEGER) AS num FROM table;

那么你的列表是一个整数列表,你可以将它添加到一个向量中。

于 2016-02-25T13:51:06.823 回答