在 foreach 循环中创建的对象

Object created inside foreach loop

我正在 foreach 循环中创建一个新对象,但我真的不知道如何调用特定对象,因为它们都具有相同的名称。

这是 class :

class Item{
    public static $allItems = array();
    public $slot;
    public $id;

    public function __construct($slot, $id){
        self::$allItems[] = $this;
        $this->slot = $slot;
        $this->id = $id;
    }
}

这里是 foreach 循环:

foreach($item_type as $key => $type){
        $itemID = $_SESSION[$type.'ID'];
        $item = new Item($key, $itemID);
    }

有没有办法以不同的方式命名它们或调用特定的实例?

为什么不创建一个包含对象的关联数组并将它们作为数组元素访问:

$elementsArray = array();

foreach($item_type as $key => $type){
    $itemID = $_SESSION[$type.'ID'];
    $elementsArray[$key] = new Item($key, $itemID);
}

然后您可以通过(假设 $key 是一个数字)访问它们中的任何一个:

$elementsArray[0] 

您可以简单地让 $item 包含一个数组。

$item = array();

foreach($item_type as $key => $type)
{
  $itemID = $_SESSION[$type.'ID'];
  $item[$itemID] = new Item($key, $itemID);
}