Php 为什么我不能在代码中访问对象的属性?

Php 为什么我不能在代码中访问对象的属性?,php,html,arrays,loops,object,Php,Html,Arrays,Loops,Object,我正在做我的作业,你最多输入3次长度和宽度,并比较哪一次最大 作业要求我有3个dfierent php文件。第一个用于main(输入和输出),第二个(rectangle.php)用于获取面积、对角线、周长和宽度,最后一个(rectanglecompare.php文件)用于比较哪些输入数据的结果最大 下面是为main.php上编写的类“Rectangle”创建数组对象的步骤 $ArRec = array(); for ($i=0; $i<count($_REQUEST["length"]);

我正在做我的作业,你最多输入3次长度和宽度,并比较哪一次最大

作业要求我有3个dfierent php文件。第一个用于main(输入和输出),第二个(rectangle.php)用于获取面积、对角线、周长和宽度,最后一个(rectanglecompare.php文件)用于比较哪些输入数据的结果最大

下面是为main.php上编写的类“Rectangle”创建数组对象的步骤

$ArRec = array();
for ($i=0; $i<count($_REQUEST["length"]); $i++){
$length = $_REQUEST ["length"][$i];
$width = $_REQUEST ["width"][$i];
$ArRec[$i]=new Rectangle($length, $width);
}
//op是输入类型“chekbox”的名称

$op=$\u请求['op'];
$out=“”;
对于($i=0;$ilargestArea();
foreach($resObj作为$value){
$out=$out。
“长度:$value->getLength\n”。
“宽度:$value->getWidth()\n”。
“区域:$value->findArea()\n\n”;
}
//$resObj=$compareObj->largestrea();类“compare”中的属性“largestrea”返回数组变量“$ArRes”,其中$ArRes[]=$this->ArRec[x]x是计算出的最大面积的索引号

错误是 注意:未定义的属性:Rectangle::$getLength,位于C:\xampp\htdocs\as8\man.php的第56行

注意:未定义的属性:矩形::$getWidth,位于第57行的C:\xampp\htdocs\as8\man.php中

注意:第58行C:\xampp\htdocs\as8\man.php中的未定义属性:矩形::$findArea

我为我的写作和编码中出现的任何或许多困惑表示歉意,但我试图尽可能地让它了解情况。我尝试了许多不同的方法来实现这一点,但我已经绝望地寻求帮助。我对编码非常熟悉,甚至在彻底搜索w3schools和php.net寻求帮助后也很难找到帮助


这是我的类“矩形”的简短版本

<?php
class Rectangle{

private $length;
private $width;
public function __construct ($length, $width){
    $this->length = $length;
    $this->width = $width;
}

public function findArea(){
    $area = $this->length * $this->width;
    return $area;
}

public function getLength(){
return $this->length;
}

public function getWidth(){
return $this->width;
}

}

对此表示抱歉。因此,第56-58行分别是“长度:$value->getLength\n”,“宽度:$value->getWidth()\n”,“区域:$value->findArea()\n\n”;largestrea()返回$ArRes;$ArRes=$this->$ArRec[x];x是最大计算面积的ArRec的索引数。因此,$resObj指向$ArRes。所以我的假设是我们可以直接调用'getLength(),getWidth(),findArea()通过$resObj->getLength在类“rectangle”中创建。你的矩形对象代码是什么样子的?里面有那些函数吗?感谢你的关注。类“rectangle”确实有函数findArea、findPerim等。我刚刚在上面的帖子中重新编辑了。你试图从名为getLength的属性中获取值,但没有。Th有一个名为getLength的方法,您可以检索返回值,如$thing->getLength()(非常重要的括号!)
$op = $_REQUEST['op'];
$out="";
for ($i=0; $i<count($op);$i++){
switch($op[$i]){
    case "LargestArea":
    $resObj = $compareObj->largestArea(); 


    foreach ($resObj as $value){

    $out = $out .
    "Length: $value->getLength\n" .
    "Width: $value->getWidth()\n" .
    "Area: $value->findArea()\n\n";
    }
<?php
class Rectangle{

private $length;
private $width;
public function __construct ($length, $width){
    $this->length = $length;
    $this->width = $width;
}

public function findArea(){
    $area = $this->length * $this->width;
    return $area;
}

public function getLength(){
return $this->length;
}

public function getWidth(){
return $this->width;
}

}
$out="";

for ($i=0; $i<count($op);$i++){
switch($op[$i]){
case "LargestArea":
$resObj = $compareObj->largestArea();

$out = "Largest Area Rectangle(s)\n";


foreach ($resObj as $value){
//$value = $ArRec[x] = rectangle($length,$width)

$lengthy = $value->getLength();
$widthy = $value->getWidth();
$area = $value->findArea();

$out = $out .
"Length: $lengthy \n" .
"Width: $widthy \n" .
"Area $area \n\n"; 
}

break;





print <<< Here

<textarea rows="20", column="20">
$out
</textarea>

Here;