アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のプログラムですが!
<?php
class Person
{
public static $count = 0;
public function __construct($nm,$ag){
person::$count++;
$this->name = $nm;
if($ag>=20 && $ag<=60){
$this->age = $ag;
}
else
$this->age = -1;
}
public function getname(){
return $this->name;
}
public function getage(){
return $this->age;
}
}


$pr1 = new Person("A",56);
$pr2 = new Person("B",38);


$table=<<<eof
<tr>
<td>{$pr1->getname()}</td>
<td>{$pr1->getage()}</td></tr>
<tr>
<td>{$pr2->getname()}</td>
<td>{$pr2->getage()}</td>
</tr>
eof;

$goukei=<<<eof
<hr>
合計人数:
eof;
$goukei.=Person::$count;

print <<<eof
<!DOCTYPE html>
<html>
<head>
<title>P262 Sample8-4 コンストラクタとクラスの変数</title>
</head>
<body>
<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
</tr>
{$table}
</table>
{$goukei}
</body>
</html>
eof;
?>
以上を基に以下を作成中です。
 ※参考URL https://oshiete.goo.ne.jp/qa/9757219.html

<?php

class person
{
protected $name = "姓名";
protected $age = 20;

public function __construct($nm,$ag)
{
$this->name = $nm;
if($ag>=20 && $ag<=60){
$this->age = $ag;
}
else
$this->age = -1;
}
public function getname(){return $this->name;}
public function getage(){return $this->age;}
}

class User extends person
{
private $adr = "xxx@xxx.xx.xx";
private $tel = "xx-xx-xxxx";

public function __construct($nm,$ag,$ad,$tl)
{
parent::__construct($nm,$ag);
$this->adr = $ad;
$this->tel = $tl;
}
public function getname(){return"会員:" . $this->name;}
public function getadr(){return $this->adr;}
public function gettel(){return $this->tel;}
}

$usr1 = new User("A",56, "mmm@nnn.nn.jp", "03-xxx-xxx");

$table <<<eof
<tr>
<td>{$usr1->getname()}</td>
<td>{$usr1->getage()}</td>
<td>{$usr1->getadr()}</td>
<td>{$usr1->gettel()}</td>
</tr>
eof;

print <<<eof
<!DCTYPE html>
<html>
<head>
<title>派生クラス継承とオーバーライト</title>
</head>
<body>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
<th>アドレス</th>
<th>電話</th>
</tr>
{$table}
</table>
{?}
</body>
</html>
eof;
?>
 以上ですが!
以下のプログラムがまずいので表二行内に表示できないのかな?
と思っています。詳しくないのでよくわかりません!?
 
ちなみにHTMLプログラムに表を組み込むこは王道でやりたくありません。
 よろしくお願いいたします。
</tr>
{$table}
</table>
{?}
</body>
</html>
eof;
?>

質問者からの補足コメント

  • どう思う?

    ご回答くださいましてありがとうございます。
     著書に 「新しいクラス 継承の仕組みを知る」とあります。
    以下
    既に定義したクラスをもとに、新しいクラスを定義することができます。
     クラスを拡張する(extends)
    といいます。例えば、名前や年齢を表すクラスをもとにして、住所や電話番号も管理する
    新しいクラスを作成することができるのです。
    新しいクラスは、既存のクラスメンバ変更・メソッドを「受け継ぐ」仕組みになっています。
    既存のクラスメンバー変数・メソッドを記述する必要はありません。
    既存のクラスに新しく必要となるなるメンバ変数・メソッドをつけ足すようにコードを書いて
    いくことができるのです。
     このように、新しいクラスが既存のクラスの資源を受け継ぐことを、継承(interitance)
    toimasu)といいます。
    以上ですが著書の見出です。
     よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/10/25 18:17
  • うれしい

    ありがとうございました。
    もし何かありましたら再度質問します。
    その節は宜しくお願いいたします。

      補足日時:2017/10/31 06:36

A 回答 (1件)

おなじ名前のクラスを宣言していますが、どちらが有効なのでしょうか?

この回答への補足あり
    • good
    • 1
この回答へのお礼

ご回答をくださいましてありがとうございます。
助かります。前回ご回答くださった方ですね!
帰宅後、調べます。しばらくおまちください。

お礼日時:2017/10/25 00:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!