実現したいこと
現在ECサイト上の商品を想定し、クラスを作成しています。
例えば、ショッピングカートにTシャツ3000円、帽子1000円、靴下500円があり、Itemsクラスでショッピングカートのリストを出力して、CartクラスにItemsクラスのリストの合計金額を出力したいのです。
Itemsクラスでリストを出力することはできたのですが、Cartクラスで合計金額を出力することができません。
発生している問題・エラーメッセージ
<?php class Items { private $name; private $price; public function __construct($name, $price) { $this->name = $name; $this->price = $price; } public function getName() { return $this->name; } public function getPrice() { return $this->price; } } class Cart { private $Itemlist; // 合計金額を出す処理をしたい } } $t_shirt = new Items('Tシャツ', 3000); $cap = new Items('帽子', 1000); $socks = new Items('靴下', 500); $items = array($t_shirt, $cap, $socks); $totalprice= 0; foreach ($items as $item) { print $item->getName(); print $item->getPrice(); $totalprice += $item->getPrice(); } print $totalprice;
補足
CartクラスでItemsクラスのリストの合計金額を出力することは不可能でしょうか。
合計用の変数用意してforeach内で加算ではダメですか?
ただ、通常はDB使うので取得してきたあとに加算ってあまりしないでしょうけど。
ただ、CartがItem継承してるのは関係性としては違うような。
回答ありがとうございます!!
foreachで合計金額を出すことはできましたが、Cartクラスで合計金額を出力することは不可能でしょうか。
このプログラムは習作でしょうか?
どの程度、実際のECサイトとして完成させる目標ですか?
大抵のことは「可能」としか答えようがないです(「そうなるように実装する」だけです)
同じことをそのクラス内ですればいいだけ。
ただ、クラス設計がおかしいので難しくなってるだけです。
あなたの回答
tips
プレビュー