Показать сообщение отдельно
  #1 (permalink)  
Старый 20.04.2017, 13:42
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Добавление товара в корзину и удаление
Если добавлять одинаковые товары, то по логике свойство numberProduct должно увеличиваться на 1.

Оно увеличивается только 1 раз , но почему-то не сохраняется?

Помогите пожалуйста, я уже 3 часа мучаюсь.

23 строка

<?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)){
			$res =  $product->numberProduct = $product->numberProduct+ 1;
			echo 'Товар добавлен в корзину<br>';
			return $res;
		}
		else{
			$this->countProduct[$product->title] = $product;
			echo 'Товар добавлен в корзину<br>';
		}
		
	}
	
	public function deleteProduct($product){
		echo $product->title . ' удалён';
		unset($this->countProduct[$product->title]);
	}
}

class Planshet extends Product{}

$planshet = new Planshet('Asus', 2000);
$planshet2 = new Planshet('Lenovo', 3000);
$planshet3 = new Planshet('Lenovo', 3000);
$planshet4 = new Planshet('Lenovo', 3000);
$planshet5 = new Planshet('Lenovo', 3000);


$korzina = new Cart();

$korzina->addProduct($planshet); //добавляю товар в корзину
$korzina->addProduct($planshet2); //добавляю товар в корзину
$korzina->addProduct($planshet3); //добавляю товар в корзину
$korzina->addProduct($planshet4); //добавляю товар в корзину
$korzina->addProduct($planshet5); //добавляю товар в корзину


echo '<pre>';
var_dump($korzina->countProduct);
echo '</pre>';

$korzina->deleteProduct($planshet); //удаляю из корзины

echo '<pre>';
var_dump($korzina->countProduct);
Ответить с цитированием