※ ChatGPTを利用し、要約された質問です(原文:PHPの読解お願いいたします クラスについて)
PHPクラスの読解についての質問
このQ&Aのポイント
PHPのクラスについての読解について質問があります。コードの解説とエラーの原因を教えてください。
独学で学んでいるPHPのクラスの読解に苦戦しています。コードをご覧いただき、エラーの原因と解決策を教えてください。
PHPのクラスに関する質問です。コードを解説していただき、エラーの原因と解決方法を教えてください。
独学でPHPを学んでます。
環境:XAMPPにて1.7.0でアパッチなど一括ダウンロード
クラスについておおまかな概念は分かりますが、細かな点が多々わかりません。
下記コードをまずご覧ください。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<html>
<head>
<title>
</title>
</head>
<body>
<?php
$test=new Figure(3,4);
print "三角形の面積は";
print $test->getarea();●
print "となります";
class Figure{
protected $width; △
protected $height;△
function __construct($width,$height){
$this->width=$width;
$this->height=$height;
}
function getarea(){
return $this->width * $this->height;●●
}
}
</table>
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
まず私の解釈ですが、
コンストラクターでオブジェクトが作成される
$width $heightにそれぞれ、3と4が格納。
クラス内ではメンバ変数を$thisであらわす必要性があることから、$widthと$heightをそれぞれ$this->width $this->heightにする。
●で$test->getarea()を呼んでいるので●●の部分の計算が行われ、その値を再度$test->getarea()に返す。
以上になりますが、なぜかエラーが出ます。
どこに誤りがありますでしょうか。
また●の部分 $test->getarea()ですが、これは関数呼び出し文とはまた別のものなのでしょうか。もし関数呼び出し文であるなら、print表記は必要ないとは思うのです。また関数呼び出し文は文字列ではないので、""は必要はないとの理解でよろしいでしょうか。
さらに△の二行につき、このコード上での存在意義とはなんでしょうか。
以上、よろしくお願いいたします。