Java本、オブジェクト脳のつくり方の演習をPHP5に書き換えたものであり、
昔、はてダに書いたものの備忘録です。
はてダの記事が消えるまたは消した時のために保守投稿。
juchu.php
<?php
require_once 'chumonsha.php';
require_once 'meisai.php';
class Juchu {
private $juchuBango;
private $meisai;
private $meisais;
private $chumonsha;
public function __construct($juchuBango) {
$this->juchuBango = $juchuBango;
}
public function addMeisai($meisai) {
$this->meisais[] = $meisai;
}
public function getMeisais() {
return $this->meisais;
}
public function setChumonsha($chumonsha) {
$this->chumonsha = $chumonsha;
}
public function getChumonsha() {
return $this->chumonsha;
}
public function getJuchuBango() {
return $this->juchuBango;
}
}
?>
meisai.php
<?php
class Meisai {
private $number;
private $prodname;
private $price;
public function __construct($number, $prodname, $price) {
$this->number = $number;
$this->prodname = $prodname;
$this->price = $price;
}
public function getMeisaiBango() {
return $this->number;
}
public function getProdName() {
return $this->prodname;
}
public function getPrice() {
return $this->price;
}
}
?>
chumonsha.php
<?php
class Chumonsha {
private $name;
private $address;
public function __construct($name, $address) {
$this->name = $name;
$this->address = $address;
}
public function getName() {
return $this->name;
}
public function getAddress() {
return $this->address;
}
}
?>
manager.php
<?phpheader('Content-type: text/html; charset=UTF-8');
require_once 'juchu.php';
class Manager
{ public function __constract
() { // サンプルデータ挿入 // num : 受注番号 $juchu =
new Juchu
(1);
// name, address : 注文者 $chumonsha =
new Chumonsha
('MS-K',
'札幌市てきとーなところ');
// $number, $prodname, $price : 明細 $meisai1 =
new Meisai
(1,
'The CLASH',
2000);
$meisai2 =
new Meisai
(2,
'SHAM 69',
2200);
$juchu->
setChumonsha($chumonsha);
$juchu->
addMeisai($meisai1);
$juchu->
addMeisai($meisai2);
$persontmp =
$juchu->
getChumonsha();
$meisaistmp =
$juchu->
getMeisais();
// 表示ロジック $html =<<< EOD
<pre>
-----------------------------------
受注伝票
-----------------------------------
受注番号 :
{$juchu->
getJuchuBango()}注文者 :
{$persontmp->
getName()}注文者住所:
{$persontmp->
getAddress()}</pre>
<table border=
"1" cellpadding=
"3" summary=
"注文明細一覧">
<tr>
<th>明細番号</th><th>注文商品</th><th>価格</th>
</tr>
EOD;
// 格納されたデータを走査 $gokei =
0;
$limit =
count($juchu->
getMeisais());
for($i=
0;
$i<
$limit;
$i++
) { $meisai =
$meisaistmp[$i];
$html .=
"<tr>\n<td>".
$meisaistmp[$i]->
getMeisaiBango().
"</td>\n<td>".
$meisaistmp[$i]->
getProdName().
"</td>\n<td>".
$meisaistmp[$i]->
getPrice().
'円'.
"</td>\n</tr>\n";
$gokei +=
$meisaistmp[$i]->
getPrice();
} $html .=<<< EOD
<tr>
<th>合計金額</th><th colspan=
"2">
{$gokei}円</th>
</tr>
</table>
EOD;
return $html;
}}// 表示開始$manager =
new Manager
();
echo $manager->__constract
();
?>
manager.phpの実行結果
-----------------------------------
受注伝票
-----------------------------------
受注番号 :1
注文者 :MS-K
注文者住所:札幌市てきとーなところ
| 明細番号 | 注文商品 | 価格 |
| 1 |
The CLASH |
2000円 |
| 2 |
SHAM 69 |
2200円 |
| 合計金額 | 4200円 |