I just finished learning PHP object-oriented programming and learned this example with reference to teacher Gao Luofeng's PHP tutorial.
图形计算(使用面向对象开发技术) 图形(周长&面积) 计算器
PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles
action = $action; $this->shape=isset($_REQUEST["action"])?$_REQUEST["action"]:"rect"; } function __toString() { // TODO: Implement __toString() method. $form=''; return $form; } private function getRect(){ $input='请输入 | PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles | 的宽度和高度:
'; $input.='宽度:
'; $input.='高度:
'; $input.=''; return $input; } private function getTriangle(){ $input='请输入 | PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles | 的三条边:
'; $input.='第一边:
'; $input.='第二边:
'; $input.='第三边:
'; $input.=''; return $input; } private function getCircle(){ $input='请输入 | PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles | 的半径:
'; $input.='半径:
'; $input.=''; return $input; } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:26 * */
shapeName = $shapeName; return $this; } //判断输入的数字是否为大于0的有效数字 protected function validate($value, $message="形状"){ if($value == "" || !is_numeric($value) || $value < 0 ){ echo ' '.$message.' 必须为非负值的数字,并且不能为空
'; return false; } else { return true; } } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:42 */
shapeName="PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles"; if($this->validate($_POST['radius'], '圆的半径')){ $this->radius=$_POST["radius"]; }else{ exit; } } function area(){ return pi()*$this->radius*$this->radius; } function perimeter(){ return 2*pi()*$this->radius; } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:06 */
shapeName="PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles"; if($this->validate($_POST["width"],'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的宽度') & $this->validate($_POST["height"],'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的高度')) { $this->width=$_POST["width"]; $this->height=$_POST["height"]; } else{ exit; } } function area(){ return $this->width*$this->height; } function perimeter() { return 2 * ($this->width + $this->height); } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:02 */
shapeName="PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles"; if($this->validate($_POST['side1'], 'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的第一个边')){ $this->side1=$_POST["side1"]; } if($this->validate($_POST['side2'], 'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的第二个边')){ $this->side2=$_POST["side2"]; } if($this->validate($_POST['side3'], 'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的第三个边')){ $this->side3=$_POST["side3"]; } if(!$this->validateSum()){ echo 'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的两边之和必须大于第三边'; exit; } } function area(){ $s=( $this->side1+$this->side2+$this->side3 )/2; return sqrt( $s * ($s - $this->side1) * ($s - $this->side2) * ($s - $this->side3) ); } function perimeter(){ return $this->side1+$this->side2+$this->side3; } private function validateSum() { $condition1 = ($this->side1 + $this->side2) > $this->side3; $condition2 = ($this->side1 + $this->side3) > $this->side2; $condition3 = ($this->side2 + $this->side3) > $this->side1; if ($condition1 && $condition2 && $condition3) { return true; } else { return false; } } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:04 */
shape=new Rect(); break; case 'triangle': $this->shape=new Triangle(); break; case 'circle': $this->shape=new Circle(); break; default: $this->shape=false; } } /** * @return string */ function __toString() { // TODO: Implement __toString() method. if($this->shape){ $result=$this->shape->shapeName.'的周长:'.$this->shape->perimeter().'
'; $result.=$this->shape->shapeName.'的面积:'.$this->shape->area().'
'; return $result; }else{ return '没有这个形状'; } } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:47 */
PHP object-oriented static delayed binding static::
The above is the detailed content of PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles. For more information, please follow other related articles on the PHP Chinese website!