前提・実現したいこと
PHPで、ボタンを押すと、別ページに飛び①メニューのnameプロパティ②そのメニューのpriceプロパティを”ランダムに”表示するようなプログラムを作成したいと思っています。
*progateにてHTML&CSS、PHPを1周した程度の初心者です。PHPの復習として、自身で考案した同プログラムを作成中です。
発生している問題・エラーメッセージ
問題は飛んだ先のページで起こっています。
下記コードの<body>内<p>タグの中に①メニューのnameプロパティをランダムで表示させたいところです。
1つ目〜4つ目のechoは表示されるのですが、肝心の5つ目のechoが表示されません。
*1つ目〜4つ目のechoは5つ目のechoが表示されない原因を探るために作成したコードです。
現状ページに表示されるのは以下の通りです(ランダムにしているため、ページ表示する度に表示は変わりますが。)
5つ目のechoでRICEもしくはWATERをランダムで表示させたいところです。
なお、今後インスタンスやプロパティを追加していくことも想定しているため、Menuクラスを使って作成したいです。
Menu 1$water$waterRICE
該当のソースコード
PHP
1<?php 2class Menu{ 3 protected $name; 4 protected $price; 5 protected static $count = 0; 6 7 public function __construct($name,$price){ 8 $this->name = $name; 9 $this->price = $price; 10 self::$count++; 11 } 12 13 public function getName(){ 14 return $this->name ; 15 } 16 public function getPrice(){ 17 return $this->price ; 18 } 19 public static function getCount(){ 20 return self::$count ; 21 } 22} 23 24$rice = new Menu('RICE',200); 25$water = new Menu('WATER',100); 26 27$menus = array('$rice','$water'); 28 29$random = rand(0,Menu::getCount()-1); 30$menucategory = $menus[$random]; 31 32?> 33<!DOCTYPE html> 34<html> 35 <meta charset="utf-8"> 36 <head> 37 <title>Menu</title> 38 </head> 39 <body> 40 <header>Menu</header> 41 <br> 42 <p> 43 <?php 44 echo $random; 45 echo $menus[$random]; 46 echo $menucategory; 47 echo $rice->getName(); 48 echo $menucategory->getName(); 49 ?> 50 </p> 51 </body> 52</html>
試したこと
どこが問題か探るため、上記にも記述したように1つ目から4つ目のechoを作成しましたが、いずれも問題なく表示されます。
ゲッターやセッターなどまだ十分に理解できていないため、nameプロパティをpublicにしてゲッターを使わずに表示することも試してみましたが、同様の結果でした。
補足情報(FW/ツールのバージョンなど)
atomで.phpファイル作成し、MAMPを使ってローカル環境で表示させています。
回答1件
あなたの回答
tips
プレビュー