给定以下代码
<?hh
$a = Vector {"qux"};
$b = Vector {"foo","bar"};
$a = array_merge($a, $b);
出现以下错误:
警告:使用了无效的操作数类型:array_merge需要数组
对于矢量和贴图,array_merge
是否有任何变通方法,而无需手动对矢量进行foreach?
回答我自己。
事实上,array_merge
不在支持hack Collections的函数列表中。
合并Vectors的最佳方法是函数addAll。
<?hh
$a = Vector {"qux"};
$b = Vector {"foo","bar"};
$a->addAll($b);
var_dump($a);
在Map的情况下,它有点复杂,需要foreach和addAll的组合来设置Pair <Tk,Tv>
我想合并一个映射,发现你也可以使用setAll()
方法。
$this->params->setAll($parent->params);
$parent
的params
覆盖$this->params
的密钥