php怎么计算一个三角形,三角形的计算

上一节提到的一次性记载多个类文件其实可以使用php提供的魔术发放__autoload()来实现

代码如下:<?php

function __autoload($classname) { //魔术方法 自动加载类

require "./$classname.class.php"; //将类名转化成小写

}

只要对应的类被实例化时就会自动调用这个方法,系统内部代码会自动去寻找到类文件的名称,赋值给$classname,

这样做的好处是能够做到延迟加载,当实例化对应的类时才会加载这个方法,避免了一次性引入很多类文件,还可能用不到

三角形的计算方式

新建Triangle.class.php文件,

三角形需要注意三条边必须满足两边之和大于第三边,不能为字母或小于0,面积和周长的计算方式不一样,其他的构造基本和矩形类似

具体代码如下:<?php

class Triangle extends Shape {

private $bian1;

private $bian2;

private $bian3;

function __construct($arr = array()) {

if (!empty($arr)) {

$this->bian1 = $arr['bian1'];

$this->bian2 = $arr['bian2'];

$this->bian3 = $arr['bian3'];

}

$this->name = "三角形";

$this->error = '';

}

function area() {

$p = ($this->bian1 + $this->bian2 + $this->bian3) / 2;

//  p(p-a)(p-b)(p-c)

return sqrt($p*($p-$this->bian1)*($p-$this->bian2)*($p-$this->bian3));

}

function zhou() {

return $this->bian1+$this->bian2+$this->bian3;

}

function view($arr) {

$form='';

$form .= "

";

$form .= "请输入".$arr['name']."的第一条边:
";

$form .= "
";

$form .= "请输入".$arr['name']."的第二条边:
";

$form .= "
";

$form .= "请输入".$arr['name']."的第三条边:
";

$form .= "
";

$form .= "    ";

$form .= "";

$form .= "

";

echo $form;

}

function yan($arr) {

$bz = true;

if ($arr['bian1']

$this->error .= "第一条边小于0;";

$bz = false;

} else {

if (!is_numeric($arr['bian1'])) {

$this->error .= "第一条边不是数字;";

$bz = false;

}

}

if ($arr['bian2']

$this->error .= "第二条边小0;";

$bz = false;

} else {

if (!is_numeric($arr['bian2'])) {

$this->error .= "第二条边不是数字;";

$bz = false;

}

}

if ($arr['bian2']

$this->error .= "第三条边小于0;";

$bz = false;

} else {

if (!is_numeric($arr['bian2'])) {

$this->error .= "第三条边不是数字;";

$bz = false;

}

}

if (($this->bian1+$this->bian2) bian3 ||($this->bian1+$this->bian3) bian2 ||($this->bian2+$this->bian3) bian1) {

$this->error .= "三条边不能构成三角形";

$bz = false;

}

return $bz;

}

}

?>

运行结果展示:

fd676dc73df3c3b679bf5d35b13d595d.gif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值