前提・実現したいこと
プログラミング学習歴1か月の超初学者です。
progateで学習中に以下のサンプルコードを見て
理解できない点があったので質問させていただきます。
php
1<?php 2class Menu { 3 private $name; 4 private $orderCount = 0; 5 6 public function getName() { 7 return $this->name; 8 } 9 10 public function getOrderCount() { 11 return $this->orderCount; 12 } 13 14 public function setOrderCount($orderCount) { 15 $this->orderCount = $orderCount; 16 } 17} 18 $menus = new Menu(); 19?> 20 21<!DOCTYPE html> 22<html> 23(中略) 24 <div class="order-wrapper"> 25 <h2>注文内容確認</h2> 26 <?php foreach ($menus as $menu): ?> 27 **<?php $orderCount = $_POST[$menu->getName()] ?>** 28 <p class="order-amount"> 29 <?php echo $menu->getName(); ?> 30 <?php echo $orderCount;?> 31 個 32 </p> 33 <?php endforeach ?> 34 </div> 35</body> 36</html>
Menuクラス内で$orderCountをprivateで指定しているにも関わらず、
クラス外から<?php $orderCount = $_POST[$menu->getName()] ?>と
セッターを介さずに値を変更できるのは何故でしょうか?
上記を<?php $menu->setOrderCount($_POST[$menu->getName()])?>としたところ不正解でした。
コードはマークダウンのcode機能を利用してご提示ください。
またgetName()はどこにも定義されていません。定義しているコードをご提示ください。
get~~なので変更している箇所はないようにも見受けられますが、どういう意味で書かれているのでしょうか。
大変失礼いたしました。
code機能を利用し、書き直しました。
また、getName()を定義している箇所を記載いたしました。
質問と無関係なコードを削除した際に
誤って一緒に消してしまっていたようです・・・
classの{ 閉じてませんが、どこまで実際のコードなのでしょうか。
構文エラーが出ます。
回答者には提示されているコードが全てなので、エラーで問題があるわけではないのでしたら
なるべくエラーの出ないコードを提示していただけると、余計なところに気を回さなくて済みますし、
的確な回答を得られます。
度々すいません。
次回から気を付けます・・・
ご指摘ありがとうございました!
回答2件
あなたの回答
tips
プレビュー