我的问题是下一个问题。 我想这样做:
<?
$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);
}
}
所以我希望,你能理解我想要的东西吗? 感谢
答案 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;
}
}