在foreach循环内创建的对象

时间:2015-01-30 18:17:58

标签: php object foreach

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

这是班级:

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);
    }

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

2 个答案:

答案 0 :(得分:3)

为什么不用对象创建关联数组并将其作为数组元素访问:

$elementsArray = array();

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

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

$elementsArray[0] 

答案 1 :(得分:0)

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

$item = array();

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