Calcul de rectangles
Considérant qu'il existe de nombreux types de graphiques, nous pouvons d'abord créer une classe abstraite graphique pour fournir des propriétés et des méthodes communes à tous les graphiques,
De cette façon, d'autres graphiques peuvent en hériter directement, réduisant ainsi la redondance du code et se conformant aux Pensées orientées objet
1, créez un nouveau fichier Shap.class.php
nom de la forme $name, message d'erreur $error, périmètre zone() et zone zhou(), et après chaque calcul il y a Vérifiez yan()
<?php abstract class Shape { private $name; private $error; abstract function area(); abstract function zhou(); abstract function view($arr); abstract function yan($arr); } ?>
2, créez un nouveau fichier Rect.class.php
Après avoir créé une nouvelle classe rectangle, héritez de la classe graphique et implémentez la méthode correspondante en plus de l'héritage. attributs et méthodes, chaque graphique a ses propres propriétés et méthodes, par exemple, un rectangle a une longueur et une largeur, une sphère a un rayon, etc.
Définissez les propriétés du rectangle $width et $height
Utilisez le constructeur pour instanciez-le et attribuez automatiquement des valeurs au nom et à l'erreur respectivement
Calculez l'aire et le périmètre
Après avoir cliqué sur le rectangle, vous devez afficher la zone de saisie. À ce stade, il vous suffit de définir une méthode view(). pour imprimer la zone de saisie
Ajoutez une étiquette a au bouton rectangulaire
<a href ='index.php?action=rect'>rectangle</a> |
Après avoir cliqué, faites une demande d'obtention et affichez la zone de saisie imprimée dans la vue. Le code est le suivant :
<?php if (!empty($_GET['action'])) { $shape = new Rect(); $shape->view(); }
<?php class Rect extends Shape { private $width; private $height; function __construct() { $this->name = "矩形"; $this->error = ''; } function area() { return $this->width * $this->height; } function zhou() { return ($this->width+$this->height) * 2; } function view($arr) { $form=''; $form .= "<form action='index.php?action=rect' method='post'>"; $form .= "请输入".$arr['name']."的宽度:<input type='text' name='width' value='".$_POST['width']."'/><br>"; $form .= "<br>"; $form .= "请输入".$arr['name']."的长度:<input type='text' name='height' value='".$_POST['height']."'/><br>"; $form .= "<br>"; $form .= "<input type='submit' name='sub' value='提交'/> "; $form .= "<input type='reset' name='ret' value='重置'/>"; $form .= "</form>"; echo $form; } } ?>
3, vérification Impression des informations
Nouvelle méthode ajoutée dans la classe rectangle :
<?php function yan($arr) { $bz = true; if ($arr['width']< 0) { $this->error .= "宽度小于0;"; $bz = false; } else { if (!is_numeric($arr['width'])) { $this->error .= "宽不是数字;"; $bz = false; } } if ($arr['height']< 0) { $this->error .= "宽度小于0;"; $bz = false; } else { if (!is_numeric($arr['height'])) { $this->error .= "高不是数字;"; $bz = false; } } return $bz; }
Imprimer les informations de vérification. , code index.php :
if (!$shape->yan($_POST)) { echo "<b>错误:$shape->error</b>"; } echo "</div>";
Si les informations de vérification sont correctes, imprimez le périmètre et la zone corrects :
<?php echo "<div id='footer'>"; if ($shape->yan($_POST)) { echo "<b>".$shape->name."的周长".$shape->zhou()."</b>"."<br>"; echo "<br>"; echo "<b>".$shape->name."的面积".$shape->area()."</b>"."<br>"; }else { echo "<b>错误:$shape->error</b>"; } echo "</div>";
Résultats d'exécution :
Je pense à vous : besoin pour introduire le fichier Rect.class.php dans index.php,exige 'Rect.class.php';
Il doit également être importé lors du calcul d'autres graphiques. Existe-t-il un moyen d'importer tous les fichiers de classe. à la fois ? (Introduit dans la section suivante)