日期:2014-05-17  浏览次数:20438 次

按照书上的写了个计算图形面积的程序,但是不执行计算,请问哪里出错了
《细说php》第8章的最后一个例子。可以创建表单,但是点击计算之后出错误。请各位大侠指点迷津
接口:class__Shape.php
<?php
    interface Shape{
     function area();
     function perimeter();
    }
?>
矩形:class__Rect.php
<?php
class Rect implements Shape{
private $width;
private $length;

function __construct($size=""){
$this->width=$size["width"];
$this->length=$size["length"];
}
function area(){
return $this->length * $this->width;
}
function perimeter(){
return 2 * ($this->width + $this->length);
}
}
?>
三角形:class__Triangle.php
<?php
class Triangle implements Shape{
private $length1;
private $length2;
private $length3;

function __construct($size=""){
$this->length1 = $size["length1"];
$this->length2 = $size["length2"];
$this->length3 = $size["length3"];
}
function area(){
$s = ($this->length1 + $this->length2 + $this->length3)/2;
return sqrt($s * ($s - $this->length1) * ($s - $this->length2) * ($s - $this->length3));
}
function perimeter(){
return $this->length1 + $this->length2 + $this->length3;
}
}
?>
圆形:class__Circle.php
<?php
class Circle implements Shape{
private $radius;

function __construce($size=""){
$this->radius = $size["radius"];
}
function area(){
return pi() * $this->radius * $this->radius;
}
function perimeter(){
return 2* pi() * $this->radius;
}
}
?>
表格:class__Form.php
<?php
class Form{
private $formName;
private $request;
private $action;
private $method;
private $target;

function __construct($formName,$request,$action="index.php",$method="get",$target="_self"){
$this->formName=$formName;
$this->request=$request;
$this->action=$action;
$this->method=$method;
$this->target=$target;
}
function __toString(){
$str="<table align=center border=5 width=800>";
$str.="<caption><h2>".$this->formName."</h2><caption>";
$str.="<form action=".$this->action."method=".$this->method."target=$this->target";

switch ($this->request["action"]){
case 1:
$str.="<tr><th>矩形长度:</th><td>";
$str.="<input type='text' name='length' value=".$this->request["length"]."></td></tr>";
$str.="<tr><th>矩形宽度:</th><td>";
$str.="<input type='text' name='width' value=".$this->request["width"]."></td></tr>";
break;
case 2:
$str.="<tr><th>三角形边长1:</th><td>";
$str.="<input type=text name='length1' value=".$this->request["length1"]."></td></tr>";
$str.="<tr><th>三角形边长2:</th><td>";
$str.="<input type=text name='length2'