progateのPHP学習コース2をやっています。
今やっている課題は、料理注文サイトを作ることを目指しています。
注文したJUICE、COFFEE、CURRY、PASTAの4つの商品の個数と金額を出し、
値を受け取り小計金額をだす作業です。
今回、理解できない部分のコードがあるので そのコードがなぜこの記述なのか
教えていただけないでしょうか。
<?php class Menu { private $name; private $price; private $image; private $orderCount = 0; public function __construct($name, $price, $image) { $this->name = $name; $this->price = $price; $this->image = $image; } public function hello() { echo '私は'.$this->name.'です'; } public function getName() { return $this->name; } public function getImage() { return $this->image; } public function getOrderCount() { return $this->orderCount; } public function setOrderCount($orderCount) { $this->orderCount = $orderCount; } public function getTaxIncludedPrice() { return floor($this->price * 1.08); } public function getTotalPrice() { return $this->getTaxIncludedPrice() * $this->orderCount; } } ?>
現在「getTotalPriceメソッドを定義してください」の部分を取り組んでおり
回答は上記の書き方なのですが、getTotalPriceメソッドの中で
$this->getTaxIncludedPrice() と $this->orderCount を掛けています。
ここで思ったのですが、片方は
$this->でgetTaxIncludedPrice()メソッドなのですが
片方が$this->orderCount という getOrderCount()メソッドの戻り値になっています。
この場合、getOrderCount()というメソッドがあるので
public function getTotalPrice(){ return $this->getTaxIncludedPrice() * $this->getOrderCount();
でもいいのでは?と思いました。
実際にこちらに変えてみると、表示内容は同じでした。
片方がメソッドなのになぜもう片方はメソッドを使っていないのかがわからない状態です。
この記述の片方がメソッドで、片方がメソッドの中身($this->orderCount)である理由は何でしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー