【发布时间】:2020-06-18 09:17:18
【问题描述】:
我正在尝试通过从 n 个项目的向量中选择 k 个项目来将属性随机分配给一个实体。在运行下面的 sn-p 时,有时它可以工作,有时它会用 foreach 给出这个奇怪的错误
InvalidForeachArgumentException: Invalid argument supplied for foreach()
我确实读过一些关于当变量通过引用传递时 foreach 的奇怪行为的帖子,并且可能需要取消设置它,但这似乎与此无关,因为我在这里没有使用任何引用。有趣的是,如果我不使用随机数生成器生成 $factor 而是将其设置为常量整数值,那么代码就可以工作。我不太确定,这里发生了什么。
$factor = PseudoRandom\int(
1,
$num
);
$capabilities = vec[];
$random_keys = PHP\array_rand(
$temp,
$factor,
);
foreach ($random_keys as $key) {
$capabilities = Vec\append(
$capabilities,
$temp[$key],
);
}
【问题讨论】:
标签: php random foreach hacklang