LIANHK
class Triangle {
// 属性成员,表示三角形的三边
private $_a;
private $_b;
private $_c;
// 初始化三角形三边值
public function __construct($arr = array()) {
if (! empty ( $arr )) {
$this->_a = $arr ['_a'];
$this->_b = $arr ['_b'];
$this->_c = $arr ['_c'];
}
}
// 属性成员get方法
public function __get($name) {
if (property_exists ( 'Triangle', $name )) {
return $this->$name;
} else {
return false;
}
}
// 属性成员set方法
public function __set($name, $value) {
if (property_exists ( 'Triangle', $name )) {
$this->$name = $value;
return true;
} else {
return false;
}
}
// 定义__toString()方法,该方法在将一个对象转化成字符串时自动调用,比如使用echo打印对象时。在该方法中,返回三角形边值信息的字符串。
public function __toString() {
return "该三角形的边值信息为:a,{$this->_a};b,{$this->_b};c,{$this->_c}。";
}
// Is_Triangle():表示三边能否构成三角形。公有,返回bool,true—可以构成;false—不能构成。
public function Is_Triangle() {
$a = $this->_a;
$b = $this->_b;
$c = $this->_c;
if ($a + $b > $c && $a + $c > $b && $b + $c > $a) {
return true;
} else {
return false;
}
}
// getArea():若构成三角形,求面积,否则返回0。
public function getArea() {
if ($this->Is_Triangle()) {
$p = ($this->_a + $this->_b + $this->_c) / 2;
return sqrt ( $p * ($p - $this->_a) * ($p - $this->_b) * ($p - $this->_c) );
} else {
return 0;
}
}
}
$arr = [
'_a' => 1,
'_b' => 2,
'_c' => 2
];
$a = new Triangle ($arr);
$a->_a = 1;
var_dump ( $a->_a,$a->Is_Triangle(),$a->getArea() );
echo $a;望采纳,谢谢