php - 在已声明但为空的数组上使用 foreach
问题描述
为了限制[xx]
在我的代码中的使用,我想做一些C/C++
风格:
$nbItem = 30;
items = array($nbItem);
foreach ($items as $i => $item){
$item = new Entity();
$item->setToto();
// do other stuff
}
当然它没有用,是有错字还是不可能php
?
笔记
我知道如何用for ($i ....)
循环做同样的事情,所以我的问题是专门针对foreach
解决方案
您可以使用array_fill方法。例如在您的代码中
$nbItem = 30;
items = array_fill(0,$nbItem,0);
foreach ($items as $i => $item){
$item = new Entity();
$item->setToto();
// do other stuff
}
在您的代码中,您试图将 30 推入索引为 0 的数组中,最终它的大小为 1
如果您不想为每个索引分配 0,您可以使用范围,例如
$nbItem = 30;
items = range(0,$nbItem);
foreach ($items as $i => $item){
$item = new Entity();
$item->setToto();
// do other stuff
}
我会推荐这个解决方案,因为它更整洁
推荐阅读
- python - 如何在 Flask 中选择按钮后正确触发 random.choice()?
- java - 如何确定我的 Java SpringApplication 由于 proxyBeansMethods 而无法运行的问题?
- opencv - 查找 OpenCV 级联分类器检测到的对象的边界
- javascript - Puppeteer-core 保存的密码 - 也许使用当前实例?
- python - Pandas 比较两个数据框并查找重复元素
- flutter - Flutter Row 小部件通过切断剩余区域解决 RenderFlex 溢出问题
- javascript - 具有复杂嵌套对象的数组解构
- node.js - React Hooks/Next.js 和 Multer:401 Unauthorized,将图像上传到 MongoDB Atlas 时出错
- laravel - Laravel - 如何防止提交,直到所有员工评论都填写在 Laravel
- listview - RangeError(索引):无效值:不在0..30范围内,包括:-1 Flutter