ゼリークラスを継承している、プリンクラス、ババロアクラスでは、aji()関数、toudo()関数、ue()関数、naka()関数は記述されていませんが、継承されています。
himitsu()関数とdekiagari()関数はオーバーライドされています。
<?php //外部ファイルの取り込み require_once("jelly.php"); require_once("pudding.php"); require_once("babaroa.php"); //初期設定 $syurui = "1"; $aji = "1"; $amasa = "0"; $topping = "0"; $kansei = ""; if($_SERVER["REQUEST_METHOD"] == "POST"){ if(isset($_POST["submit"])){ //種類 if(isset($_POST["syurui"])){ $syurui = $_POST["syurui"]; } //味 if(isset($_POST["aji"])){ $aji = $_POST["aji"]; } //甘さ if(isset($_POST["amasa"])){ $amasa = $_POST["amasa"]; } //トッピング if(isset($_POST["topping"])){ $topping = $_POST["topping"]; } //インスタンスの作成 switch($syurui){ case "1": $obj = new jelly($aji); break; case "2": $obj = new pudding($aji); break; case "3": $obj = new babaroa($aji); break; } $obj->toudo($amasa); $obj->ue($topping); $kansei = $obj->dekiagari(); } } ?> <!DOCTYPE HTML> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h2>ぷろぷるスィーツ♪ご注文♪</h2> <?php if($kansei > ""){ echo "<b>" . $kansei . "</b><br><br>"; echo "ですね(*^_^*)♪"; } ?> <hr> <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST"> こちらからお好みをお選びください!<br> <table border="1" width="600" cellspacing="0" cellpadding="0"> <?php //種類 ?> <tr> <td align="center" width="150" bgcolor="//e9967a">種類</td> <td align="left" width="450"> <input type="radio" name="syurui" value="1"<?if($syurui=="1"){echo " checked";}?>>ゼリー <input type="radio" name="syurui" value="2"<?if($syurui=="2"){echo " checked";}?>>プリン <input type="radio" name="syurui" value="3"<?if($syurui=="3"){echo " checked";}?>>ババロア </td> </tr> <?php //味 ?> <tr> <td align="center" width="150" bgcolor="//e9967a">味</td> <td align="left" width="450"> <input type="radio" name="aji" value="1"<?if($aji=="1"){echo " checked";}?>>オレンジ <input type="radio" name="aji" value="2"<?if($aji=="2"){echo " checked";}?>>苺 <input type="radio" name="aji" value="3"<?if($aji=="3"){echo " checked";}?>>マンゴー <input type="radio" name="aji" value="4"<?if($aji=="4"){echo " checked";}?>>珈琲 <input type="radio" name="aji" value="5"<?if($aji=="5"){echo " checked";}?>>ミルク </td> </tr> <?php //甘さ ?> <tr> <td align="center" width="150" bgcolor="//e9967a">甘さ</td> <td align="left" width="450"> <input type="radio" name="amasa" value="0"<?if($amasa=="0"){echo " checked";}?>>なし <input type="radio" name="amasa" value="1"<?if($amasa=="1"){echo " checked";}?>>ちょっぴり <input type="radio" name="amasa" value="2"<?if($amasa=="2"){echo " checked";}?>>ほんのり <input type="radio" name="amasa" value="3"<?if($amasa=="3"){echo " checked";}?>>とっても <input type="radio" name="amasa" value="4"<?if($amasa=="4"){echo " checked";}?>>めちゃめちゃ </td> </tr> <?php //トッピング ?> <tr> <td align="center" width="150" bgcolor="//e9967a">トッピング</td> <td align="left" width="450"> <input type="radio" name="topping" value="0"<?if($topping=="0"){echo " checked";}?>>なし <input type="radio" name="topping" value="1"<?if($topping=="1"){echo " checked";}?>>生クリーム <input type="radio" name="topping" value="2"<?if($topping=="2"){echo " checked";}?>>フルーツソース <input type="radio" name="topping" value="3"<?if($topping=="3"){echo " checked";}?>>苺 <input type="radio" name="topping" value="4"<?if($topping=="4"){echo " checked";}?>><font color="//e9967a">秘密</font> </td> </tr> </table> <font color="//e9967a">秘密のトッピングについてはお楽しみです♪</font><br> <input type="submit" name="submit" value=" 注文する "> </form> </body> </html>
<?php //ゼリークラス class jelly{ var $m_aji = "味なし"; var $m_amasa = ""; var $m_topping = ""; //コンストラクタ function jelly($aji){ $this->m_aji = $this->aji($aji); } //味 function aji($aji){ switch($aji){ case "1": return "オレンジ"; break; case "2": return "苺"; break; case "3": return "マンゴー"; break; case "4": return "珈琲"; break; case "5": return "ミルク"; break; } } //甘さ function toudo($amasa){ switch($amasa){ case "0": $this->m_amasa = "甘くない"; break; case "1": $this->m_amasa = "ちょっぴり甘い"; break; case "2": $this->m_amasa = "ほんのりと甘い"; break; case "3": $this->m_amasa = "とっても甘い"; break; case "4": $this->m_amasa = "めちゃめちゃ甘い"; break; } } //トッピング function ue($topping){ switch($topping){ case "0": $this->m_topping = ""; break; case "1": $this->m_topping = "生クリームがたっぷりのった"; break; case "2": $this->m_topping = "フルーツソースがかかった"; break; case "3": $this->m_topping = "苺がのった"; break; case "4": $this->m_topping = $this->himitsu(); break; } } //秘密 function himitsu(){ return "お肌がすべすべになるエキスが入っている"; } //出来上がり function dekiagari(){ return $this->m_amasa . $this->m_topping . $this->m_aji . "ゼリー"; } } ?>
<?php //プリンクラス class pudding extends jelly{ //コンストラクタ function pudding($aji){ $this->m_aji = $this->aji($aji); } //秘密 function himitsu(){ return "一口食べると寿命が10年延びる"; } //出来上がり function dekiagari(){ return $this->m_amasa . $this->m_topping . $this->m_aji . "プリン"; } } ?>
<?php //ババロアクラス class babaroa extends jelly{ //コンストラクタ function babaroa($aji){ $this->m_aji = $this->aji($aji); } //秘密 function himitsu(){ return "食べると口からダイアモンドが出てくる\(^o^)/"; } //出来上がり function dekiagari(){ return $this->m_amasa . $this->m_topping . $this->m_aji . "ババロア"; } } ?>