在 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);
}
我正在 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);
}