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

时间:2014-07-05 02:49:32

标签: php html arrays loops object

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

这项任务要求我拥有3个dffierent php文件。第一个用于main(输入和输出),第二个用于获取Area,Diagonals,perimeters,length和width,以及Last(rectanglecompare.php文件),用于比较哪些输入数据具有最大结果。

以下是为类' Rectangle'创建一个Array对象。写在main.php上

$ArRec = array();
for ($i=0; $i<count($_REQUEST["length"]); $i++){
$length = $_REQUEST ["length"][$i];
$width = $_REQUEST ["width"][$i];
$ArRec[$i]=new Rectangle($length, $width);
}

此行为类创建一个对象&quot;比较&#39;与矩形的数组对象。然后以下几行是我在调用结果值时遇到问题的地方。

$compareObj = new compare($ArRec);

// op是输入类型的名称&#34; chekbox&#34;

$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";
    }

// $ resObj = $ compareObj-&gt; largestArea();该物业的最大区域&#39;在课堂上比较&#39;返回一个数组变量&#39; $ ArRes&#39;,其中$ ArRes [] = $ this-&gt; ArRec [x] x是计算出的最大区域的索引号。

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

注意:未定义的属性:第57行的C:\ xampp \ htdocs \ as8 \ man.php中的Rectangle :: $ getWidth

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

我为我的写作和编码上的任何或许多混淆道歉,但我试图尽可能地了解它。我尝试了许多不同的方式来完成这项工作,但我已经绝望地寻求帮助。我是编码的初学者,甚至在搜索了w3schools和php.net之后也很难看。


以下是我的课程&#39;矩形&#39;

的简短版本
<?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;
}

}

此课程具有“找到”的功能,findDiag&#39;但我编辑出来让它简短易读。它们的返回值与上面的其他格式相同。


最后一个问题。 (不要求编码结构)。代码工作正常,但我对此部分有点混淆。

$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;

此编码结果给出:

最大周长矩形

长度:3 宽度:4 周长:14

长度:3 宽度:4 周长:14

我不能得到的是为什么线条最大的周长矩形&#39;曾经说过一次。我编写了一个变量的数字,并将它们放在与声明$ out的位置相同的位置(一个在forloop之外,另一个在forloop中具有不同的值),并且使用了forloop中的变量并重复多次,如Lengh,Width和周界。

0 个答案:

没有答案
相关问题