DivMan
Новичок
Вот такая проблема, количество товаров нормально считает, а вот цену не правильно, если добавить 4 одинаковых товара, стоимостью 2000, то должно получится 8000, а получается 16 000, почему?
И почему не узнаётся цена добавленного товара?
Я же говорю ей, возьми общую цену у товаров, которые лежат в корзине и добавь к ним цену нового товара, а получается, что складывается общая цена и общая цена.
И почему не узнаётся цена добавленного товара?
Я же говорю ей, возьми общую цену у товаров, которые лежат в корзине и добавь к ним цену нового товара, а получается, что складывается общая цена и общая цена.
PHP:
<?php
abstract class Product{
public $title;
public $price;
public $numberProduct;
public function __construct($title, $price, $numberProduct = 1){
$this->title = $title;
$this->price = $price;
$this->numberProduct = $numberProduct;
}
}
class Cart{
public $countProduct = [];
public function addProduct($product){
if(array_key_exists($product->title, $this->countProduct)){
$this->countProduct[$product->title]->numberProduct++;
//$this->countProduct[$product->title]->price += 2000;
$this->countProduct[$product->title]->price += $product->price;
var_dump($product->price);
echo 'Товар добавлен в корзину<br>';
echo 'Количество ' . $product->numberProduct . '<br>';
echo '<br>';
}
else{
$this->countProduct[$product->title] = $product;
}
}
public function showAllProduct(){ //показать список продуктов и количество
foreach($this->countProduct as $key => $value){
echo 'Товар ' . $key . ' количество ' . $value->numberProduct . '<br>';
}
echo '<pre>';
var_dump($this->countProduct);
}
}
class Planshet extends Product{}
$asus = new Planshet('Asus', 2000);
$korzina = new Cart();
$korzina->addProduct($asus); //добавляю товар в корзину
$korzina->addProduct($asus); //добавляю товар в корзину
$korzina->addProduct($asus); //добавляю товар в корзину
$korzina->addProduct($asus); //добавляю товар в корзину
$korzina->addProduct($asus); //добавляю товар в корзину
$korzina->showAllProduct();
echo $asus->price;