首页 > 解决方案 > 在已声明但为空的数组上使用 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

标签: phpforeach

解决方案


您可以使用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
}

我会推荐这个解决方案,因为它更整洁


推荐阅读