【问题标题】:PHP list of objects with foreach loop带有 foreach 循环的 PHP 对象列表
【发布时间】:2015-05-06 18:30:01
【问题描述】:

您好,我是一名 C# 开发人员,目前正在使用 PHP。我知道这是一项非常简单的任务,但我真的对此一无所知。我必须创建一个列表,其中包含要使用 foreach 循环动态创建的项目。这些是我想用 foreach 循环动态创建列表的静态列表项。

        $item_1 = new Item();
        $item_1->setName('Item 1')
            ->setCurrency('USD')
            ->setQuantity(2)
            ->setPrice('15');

        $item_2 = new Item();
        $item_2->setName('Item 2')
            ->setCurrency('USD')
            ->setQuantity(4)
            ->setPrice('7');

        $item_3 = new Item();
        $item_3->setName('Item 3')
            ->setCurrency('USD')
            ->setQuantity(1)
            ->setPrice('20');

        // add item to list
        $item_list = new ItemList();
        $item_list->setItems(array($item_1, $item_2, $item_3));

【问题讨论】:

  • 你知道怎么写循环吗?你知道如何使用数组吗?你到底在坚持什么?动态数据从何而来?

标签: php list foreach


【解决方案1】:

为此使用数组:

$totalItems = 3;
$itemsList = new ItemsList();
$items = array();

for ($i = 1; $i <= $totalItems; $i++) {
    $items[$i] = new Item();
    $items[$i]->setName("Item{$i}"); // Or "Item".$i; " - means PHP will search for variable inside (either with "{}" or without). ' - means PHP will ignore variables
    $items[$i]->setCurrency('USD');
    /* If all methods returns Item object, than you can chine methods calls: */
    $item[$i] = new Item();
    $item[$i]
        ->setName("Item{$i}")
        ->setCurrency('USD')
        ->setQuantity($this->getQuantity());
}

$itemsList->setItems($items);

【讨论】:

    【解决方案2】:
    $item_list = array();
    foreach($data as $value){
        $item =new stdClass;
        $item->name = $value->name;
        $item->price = $value->price;
        $item->quantity = $value->quantity;
        $item->currancy = $value->currancy;
        $item_list[] = $item;
    }
    

    【讨论】:

      【解决方案3】:
      $items = array();
      
      for ($i = 1; $i <= SOME_NUMBER; $i++)
      {
          $item = new Item();
          $item->setName('Item ' . $i);
          // ...
          $items[] = $item;
      }
      
      // ...
      
      $itemList->setItems($items);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-12
        • 2017-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-19
        • 1970-01-01
        相关资源
        最近更新 更多