Php 声明动力学变量Laravel

Php 声明动力学变量Laravel,php,laravel,Php,Laravel,我的问题是下一个。 我想做这个: <? $item1=''; $item2=''; //etc.. ?> 所以我希望,你能理解我想要什么。 谢谢您可以使用变量动态创建变量。 如果我理解了您的问题并更正了代码,那么应该这样做: foreach ($cart as $item) { foreach ($item as $key => $value) { //so if foreach current is 3 to be $item3=new It

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

<?
 $item1='';
 $item2='';
 //etc..
?>
所以我希望,你能理解我想要什么。
谢谢

您可以使用变量动态创建变量。

如果我理解了您的问题并更正了代码,那么应该这样做:

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);
            }
        }
请参见以下示例:


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

创建这样的新变量的问题在于,您不知道它的终点。
有一件还是50件?
这不是世界末日,你可以通过以下方式来应对:

While(isset(${"item" . $i})){
    Echo ${"item" . $i};
    $i++;
}
它的工作原理与for或foreach一样好,但调试起来比较困难。
使用数组,您只需将其变量转储并查看内容。

使用单个变量会稍微困难一些。

您可以使用变量动态创建变量。

如果我理解了您的问题并更正了代码,那么应该这样做:

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);
            }
        }
请参见以下示例:


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

创建这样的新变量的问题在于,您不知道它的终点。
有一件还是50件?
这不是世界末日,你可以通过以下方式来应对:

While(isset(${"item" . $i})){
    Echo ${"item" . $i};
    $i++;
}
它的工作原理与for或foreach一样好,但调试起来比较困难。
使用数组,您只需将其变量转储并查看内容。
使用单个变量会稍微困难一些。

像这样尝试

$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;
    }
}
像这样试试

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

你的意思是你想用$key作为数字创建名为item的新变量吗?请重写它,我完全不知道你要的是什么。你为什么要这样做而不是把值放在数组中?OP你应该阅读我的答案更新。我注意到你在我打字时接受了我的答案。你的意思是你想创建名为item的新变量,编号为$key?请重写它,我完全不知道你要的是什么。你为什么要这样做而不是将值放在数组中?OP你应该阅读我对我答案的更新。我注意到你在我打字时接受了我的答案。