我在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);
}
有没有办法以不同方式命名它们或调用特定实例?
答案 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);
}