PHP 5.6 - 使用 if 语句更新循环修改对象
PHP 5.6 - Modify object in loop with if-statements updates latest only
在我的系统中,汽车和产品类别是具有 EAN 代码的组合。每辆车都可以有多个具有不同 EAN 代码的产品类别,我想使用属于该特定组合的 EAN 代码。我使用 foreach 循环遍历所有汽车并获得正确的 EAN 代码,并将其放入产品类别的 Arraylist 中,但每当我 运行 我的代码时,只有最新的 EAN 代码将用于所有产品类别那辆车有。
例如:
汽车 1 有 3 个类别:cat1 有 EAN 123,cat2 有 EAN 324 和 cat3 有 EAN 543 但是当我检查汽车 1 类别时,所有 EAN 代码都设置为 543。
我正在谈论的循环:
foreach($cars as $car) {
if($car->Cat1 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 127, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat1->add($car);
}
if($car->Cat2 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 126, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat2->add($car);
}
if($car->Cat3 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 781, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat3->add($car);
}
if($car->Cat4 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 2924, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat4->add($car);
}
if($car->Cat5 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 993, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat5->add($car);
}
if($car->Cat6 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 5195, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat6->add($car);
}
}
经过深入研究,我找到了它
$tempCar = clone $car;
$ean = koppelEan::get()->filter( array('ProductID' => 993, 'AutoTypeID' => $car->ID))->first();
$tempCar->EAN = $ean->EAN;
self::$cat1->add($tempCar);
在我的系统中,汽车和产品类别是具有 EAN 代码的组合。每辆车都可以有多个具有不同 EAN 代码的产品类别,我想使用属于该特定组合的 EAN 代码。我使用 foreach 循环遍历所有汽车并获得正确的 EAN 代码,并将其放入产品类别的 Arraylist 中,但每当我 运行 我的代码时,只有最新的 EAN 代码将用于所有产品类别那辆车有。
例如: 汽车 1 有 3 个类别:cat1 有 EAN 123,cat2 有 EAN 324 和 cat3 有 EAN 543 但是当我检查汽车 1 类别时,所有 EAN 代码都设置为 543。
我正在谈论的循环:
foreach($cars as $car) {
if($car->Cat1 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 127, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat1->add($car);
}
if($car->Cat2 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 126, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat2->add($car);
}
if($car->Cat3 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 781, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat3->add($car);
}
if($car->Cat4 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 2924, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat4->add($car);
}
if($car->Cat5 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 993, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat5->add($car);
}
if($car->Cat6 == 1) {
$ean = koppelEan::get()->filter( array('ProductID' => 5195, 'AutoTypeID' => $car->ID))->first();
$car->EAN = $ean->EAN;
self::$Cat6->add($car);
}
}
经过深入研究,我找到了它
$tempCar = clone $car;
$ean = koppelEan::get()->filter( array('ProductID' => 993, 'AutoTypeID' => $car->ID))->first();
$tempCar->EAN = $ean->EAN;
self::$cat1->add($tempCar);