声明动力变量Laravel

时间:2017-07-29 08:17:36

标签: php laravel

我的问题是下一个问题。 我想这样做:

<?
 $item1='';
 $item2='';
 //etc..
?>

但是像这样:

    foreach ($cart as $item) {
                foreach ($item as $key => $value) {
//so if foreach current is 3 to be $item3=new Item(); etc..
                    $item1 = new Item();
                    $item1->setName('Ground Coffee 40 oz')
                      ->setCurrency('USD')
                      ->setQuantity(1)
                      ->setSku("123123") // Similar to `item_number` in Classic API
                      ->setPrice(7.5);
                }
            }

所以我希望,你能理解我想要的东西吗? 感谢

2 个答案:

答案 0 :(得分:0)

您可以使用变量动态创建变量 http://php.net/manual/en/language.variables.variable.php

如果我理解你的问题和代码是正确的,这应该是这样做的方法:

foreach ($cart as $item) {
            foreach ($item as $key => $value) {
//so if foreach current is 3 to be $item3=new Item(); etc..
                ${"item" . $key} = new Item();
                ${"item" . $key}->setName('Ground Coffee 40 oz')
                  ->setCurrency('USD')
                  ->setQuantity(1)
                  ->setSku("123123") // Similar to `item_number` in Classic API
                  ->setPrice(7.5);
            }
        }

请在此处查看示例:https://3v4l.org/VUHXS

<小时/>

在我看来,这不是一个解决问题的好方法 您可能应该使用数组。

创建这样的新变量的问题是你不知道它的结束位置 有一个项目还是50个? 这不是世界末日,你可以通过以下方式进行管理:

While(isset(${"item" . $i})){
    Echo ${"item" . $i};
    $i++;
}

它会像for或foreach一样好用,但调试起来会更困难 使用数组,您只需var_dump并查看内容即可 单个变量稍微困难一些。

答案 1 :(得分:0)

试试这个

$itemArray=[];
foreach ($cart as $item) {
    foreach ($item as $key => $value) {
//so if foreach current is 3 to be $item3=new Item(); etc..
        $item1 = new Item();
        $item1->setName('Ground Coffee 40 oz')
            ->setCurrency('USD')
            ->setQuantity(1)
            ->setSku("123123") // Similar to `item_number` in Classic API
            ->setPrice(7.5);
        $itemArray[]=$item1;
    }
}