重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

クラスを利用するのプログラムで質問があります。
-----------------------------------------------------------------------------------
<body>
<?php
$pr = new Person;//②オブジェクトを作成します
$pr->name = "鈴木";③//メンバ変数に値を代入します
$pr->age = 56;//③メンバ変数に値を代入します
?>
<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
</tr>
<?php
print "<tr><td>";
print $pr->getname();//③メソッドを呼び出す
print "</td><td>";
print $pr->getage();//③メソッドを呼び出す
print "</td></tr>";
?>
</table>
<?php
class Person//①クラスを定義です
{
public $name = "姓名";
public $age = 20;//メンバ変数を定義します

function getname(){return $this->name;}//以下2行はメソッドを定義します
function getage(){return $this->age;}//$自分自身のメンバ変数を利用する場合は$this->を付けます
}
?>
</body>
------------------------------------------------------------------------------------
「画像を添付」は以上のプログラムの実行画面ですが!
public $name = "姓名";
public $age = 20;
がなくても実行結果に影響はありません何の目的あるのでしょうか・・・
 よろしくお願いいたします。

「題目:クラスを利用する~段々と難しくなっ」の質問画像

A 回答 (4件)

カプセル化の概念がわからないという質問でしょうか?



https://www.google.co.jp/search?q=%E3%82%AB%E3%8 …

どうせならsetname()、setage()も用意したほうがよいような・・・
    • good
    • 0
この回答へのお礼

ご回答くださいましてありがとうございました。
カプセル化で思い出したのですが・・・8年ぐらい前に
いちばんやさしいオブジェクト指向の本(井上樹著書)
 の本を読んだことがあります。
その考え方でOKですね^^

お礼日時:2016/07/13 11:58

あまり良い例には見えないですね。

。。
 おそらく変数定義時にセットした初期値が実行時に上書きされてることを示したいのだと思います。

 なお、個人的には最初に学ぶWebシステム開発言語としてPHPはあまり適していないように感じています。
 理由はサーバ側で動くこととWebブラウザ側で動くことの直観的な理解がし難い言語仕様と思うからです。
 HTMLの基本→Javascriptでちょっと動かす→HTMLのFORM変数でサーバ側にデータを送ってサーバー処理を加える、、、という順で進むとわかりやすいのではないかと考えます。その際、サーバー処理の開発言語はJavaかPerl、あるいは思い切ってC言語とすると全HTMLを明確に送出するのでより分かりやすいと思います。
    • good
    • 1
この回答へのお礼

ご鞭撻ありがとうございました。
そうですね・・・HTML1冊 C言語数冊 Javascriptトータル1冊
VBA 2/3冊の本をやりましたが・・・・
 プログラムは難しいです・・・たぶんオブジェクト指向に突入した
ので複雑になってきました。
 最近忙しくてPHPをやる暇がなくなりつつありますが、せっかくです
ので焦らず続けようと思います。
 今後ともよろしくお願いいたします。

お礼日時:2016/07/19 23:11

訂正


public $age = 20;
を56で上書きしているからかな
    • good
    • 0

$pr->age = 20;


じゃなくて
public $age = 20;
だからじゃないですか
    • good
    • 0

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