Médiaforma

PHP MySQL – Exercice sur la POO en PHP5

Print Friendly, PDF & Email

Définissez la classe chainePlus qui contient :

  • Une propriété private nommée chaine ;
  • quatre méthodes de type public nommées gras(), italique(), souligne() et majuscules() qui retournent respectivement la chaîne passée en argument mise en gras, en italique, soulignée et mise en majuscules.

Définissez un script PHP qui crée un objet basé sur la classe chainePlus et qui l’exploite pour obtenir le résultat suivant :

Solution

Faites une pause dans la vidéo et définissez la classe chainePlus et un objet basé sur cette classe. Vous reprendrez la lecture de la vidéo pour prendre connaissance de la solution.

Voici le code de la classe chainePlus :

<?php
  class chainePlus{
    private $chaine = "Programmation orientée objet en PHP";
    public function __construct($laChaine){
      $this -> chaine = $laChaine;
    }
    public function gras(){
      return "<b>".$this->chaine."</b><br>";
    }
    public function italique(){
      return "<i>".$this->chaine."</i><br>";
    }
    public function souligne(){
      return "<u>".$this->chaine."</u><br>";
    }
    public function majuscules(){
      return strtoupper($this->chaine)."<br>";
    }
  }
?>

La première instruction définit la propriété private $chaine et lui affecte la chaîne « Programmation orientée objet en PHP ». Cette variable ne sera accessible que par les méthodes de la classe.

Les instructions suivantes définissent les méthodes gras, italique, souligne et majuscules. Ces quatre méthodes fonctionnent sur le même principe : elles lisent le contenu de la propriété $chaine, lui appliquent un traitement spécifique et retournent le résultat obtenu à l’appelant.

La méthode gras encadre la chaîne par les balises b et /b pour l’afficher en gras et lui ajoute un passage à la ligne avec la balise br. La méthode italique encadre la chaine avec les balises i et /i pour l’afficher en italique et lui ajoute un passage à la ligne. La méthode souligne encadre la chaine avec les balises u et /u pour la souligner et lui ajoute un passage à la ligne. Enfin, la méthode majuscules applique la fonction strtoupper à la chaine pour l’afficher en majuscules et lui ajouter un passage à la ligne.

Voici le code du script objetChainePlus.php, qui crée un objet basé sur la classe chainePlus et qui l’utilise :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Formulaire d'accès à la page protégée</title>
  </head>
  <body>
    <?php
      include_once("chainePlus.class.php");
      $st = new chainePlus("Programmation orientée objet en PHP");
      echo "Gras : ".$st->gras();
      echo "Italique : ".$st->italique();
      echo "Souligné : ".$st->souligne();
      echo "Majuscules : ".$st->majuscules();
    ?>
  </body>
</html>

Ce script est très simple. Après avoir inclus le code de la classe chainePlus avec l’instruction include_once, une instance de la classe chainePlus est créée avec l’instruction new. L’objet créé a pour nom $st.

Les méthodes Gras, Italique, Souligne et Majuscules de l’objet sont alors invoquées pour afficher les différentes mises en forme de la chaîne.
Exécutons ce code dans WAMP Server. Les quatre mises en forme de la chaîne sont bien affichées.

 

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

Si je puis me permettre, ton script ne fonctionnera pas, ta fonction function __constructor() ne fonctionnera pas, c’est function __construct(). Ton $laChaine n’est pas définie, utilise plutôt $chaine ou modifie ton private en $laChaine.
Voilà celui que j’ai fait, si ça peut aider.

chaine = $chaine;
}
public function gras(){
return ‘gras : ‘.$this->chaine. »« ;
}
public function italique(){
return ‘italique : ‘.$this->chaine. »« ;
}
public function souligne(){
return ‘souligne: ‘.$this->chaine. » »;
}
public function majuscules(){
return ‘majuscule:’.strtoupper($this->chaine). »;

}
}

$maChaine = new chainePlus(« Test, un deux un deux, test »);

echo $maChaine->gras();
echo  »;
echo $maChaine->italique();
echo  »;
echo $maChaine->souligne();
echo  »;
echo $maChaine->majuscules();
echo  »;
?>

Merci pour ce commentaire Bibi.
Effectivement, ce n’est pas constructor mais construct.
Quant à la variable $lachaine, on peut s’en servir car elle est passée en argument.

Cordialement

Dsl les balises br, b, u, p et i n’apparaissent pas. Seul les double quote apparaissent en comm.