//method 'gets' how much total of all items with tax $afterTax = $this->getTaxAmount() + $this->getCostBeforeTax(); return $afterTax; } } class Item { // creates item class public $name; public $price; public function __construct($name, $price) { // construct allows to set name and price for each item $this->name = $name; $this->price = $price; } } $cart = new ShoppingCart(); $cart->addItem(new Item('Cheap Book', 2.99)); $cart->addItem(new Item('Expensive Book', 24.99)); $cart->addItem(new Item('Movie', 12.99)); $cart->addItem(new Item('Video Game', 59.99)); echo "<p>Total cost before tax: \${$cart->getCostBeforeTax()}</p>"; echo "<p>Tax amount: \${$cart->getTaxAmount()}</p>"; echo "<p>Total cost after tax: \${$cart->getCostAfterTax()}</p>"; ?> </p> </body> </html>
class DVD extends Item { public $tax = .05; } class VideoGame extends Item { public $tax = .1; } $cart = new ShoppingCart(); $cart->addItem(new Book('Cheap Book', 2.99)); $cart->addItem(new Book('Expensive Book', 24.99)); $cart->addItem(new DVD('Movie', 12.99)); $cart->addItem(new VideoGame('Video Game', 59.99)); $beforeTax = number_format($cart->getCostBeforeTax(), 2); $taxAmount = number_format($cart->getTaxAmount(), 2); $afterTax = number_format($cart->getCostAfterTax(), 2); echo "<p>Total cost before tax: \$$beforeTax</p>"; echo "<p>Tax amount: \$$taxAmount</p>"; echo "<p>Total cost after tax: \$$afterTax</p>"; ?> </p> </body> </html>