私は頭が錆びないようにPHPプログラムを勉強しています。
以下のプログラムはPHP参考書の通りに入力しました。
 しかし!<?php~?>の順番を変えてもプログラムは動きます。
そこで、もしあなたが第三者に以下のプログラムの流れを説明しようとした場合
主観でもいいのですが、最初にどんなプログラムを持ってきますか?
 よろしくお願いします。
<!DOCTYPE html>
<html>
<head>
<title>P262 Sample8-4 コンストラクタとクラスの変数</title>
</head>
<body>

<?php

$pr1 = new Person("鈴木",56);
$pr2 = new Person("佐藤",38);
?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
</tr>

<?php

print "<tr><td>";
print $pr1->getname();
print "</td><td>";
print $pr1->getage();
print "</td></tr>";

print "<tr><td>";
print $pr2->getname();
print "</td><td>";
print $pr2->getage();
print "</td></tr>";

?>
</table>

<?php

print "<hr>";
print "合計人数:";
print Person::$count;

?>

<?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;}
}

?>

</body>
</html>

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

  • うれしい

    そうですね^^
    1)最初にクラスを宣言
    2)この章の趣旨であるstatic最初に持ってきた後に「::」があるのでわかりやすいです。
      参考書だと::の後にstaticがあり素人には、わかりにくかったです。
    3)それから、 __construct($nm,$ag)で引数を宣言することでわかりやすいです。
    4)それから、決まりに従った手続きに入る。
     非常にわかりやすいです。

      補足日時:2017/05/17 07:02

A 回答 (2件)

できればクラスの宣言は上部にもっていくか、別ファイルにわけてincludeします


あとは表示部分はひとまとめにしたほうがいいでしょう

<?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("鈴木",56);
$pr2 = new Person("佐藤",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;
?>
    • good
    • 1
この回答へのお礼

ご回答くださいましてありがとうございました。
 私にとりましてハイレベルのプログラムです。
「こんなやり方もあるのか」と勉強になります。
今から解読してみます。

お礼日時:2017/05/17 06:44

webプログラムの肝はプログラムとデザインをわけることです。


HTMLの表示はデザイナーさんが適宜調整をしてくれるものなので
プログラマは動的な部分をいかに効率よく渡してやるかだけ考えればいいでしょう
(もちろん一人で兼務する場合にも、問題を切り分けるのに有効です)

$tableと$goukeiをあえてわけているのは、その後のメインのHTMLが
スタティックなテンプレートになっていて、動的な部分を変数で渡すためです。
次のステップでajaxなど非同期処理が入ってきた場合にも切り分けが楽になります
    • good
    • 1
この回答へのお礼

再度ご回答くださいましてありがとうございました。
Aンス:webプログラムの肝はプログラムとデザインをわけること
なるほどですね^^
参考書は、分けていなかったので、PHPだけの機能を勉強するにあたり、わかりずらかったのですね、きっと

お礼日時:2017/05/18 07:00

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング