Médiaforma

All posts tagged php5

Il est temps de passer à la pratique. Dans cette partie, vous allez écrire plusieurs scripts pour faire vos armes en POO PHP. Pour cela, nous allons travailler sur une classe spécialisée dans le traitement des chaînes de caractères. Cette classe contiendra plusieurs méthodes permettant de simplifier les manipulations des chaines de caractères.

Pour définir une classe, il suffit d’utiliser le mot class suivi du nom de la classe. Par exemple :

class chainePlus {
  // Une ou plusieurs instructions
}

Pour définir les propriétés de la classe, vous utiliserez le mot-clé :

  • public si la propriété doit être accessible dans la classe, les classes dérivées et les objets ;
  • private si la propriété doit être accessible dans la classe seulement ;
  • protected si la propriété doit être accessible dans la class et ses classes dérivées.

Par exemple :

private $nomProp;

Où nomProm est le nom d’une propriété.

Pour définir des fonctions membres, vous utiliserez cette syntaxe :

public function nom(){
  // Une ou plusieurs instructions
  // $this->nomProp permet d'accéder à la propriété nomProp
}
Remarque
Par convention, il est préconisé de sauvegarder la classe sous le nom nomClasse.class.php (où nomClasse est le nom de la classe). 

 

 


Pour instancier une classe (c’est-à-dire pour créer un objet à partir d’une classe), vous devez :

    1. Insérer le code de la classe à l’aide d’une instruction include_once :
 include_once(nom);

nom est le nom du fichier dans lequel a été définie la classe.

 

  • Créer un objet avec l’instruction new :

 

 $objet = new classe();

objet est le nom de l’objet créé et classe le nom de la classe à utiliser comme modèle.

 

Pour accéder à une méthode ou une propriété publique, utilisez la syntaxe suivante :

$this -> nom;

Où nom est le nom de la méthode ou de la propriété publique à accéder.

Vous pouvez par exemple :

  • Affecter une valeur à une propriété publique :
     $this -> nomPropriete = 10;
  • Afficher la valeur d’une propriété publique :
     echo $this -> nomPropriete;
  • Lancer une fonction publique :
     $this -> nomFonction();
  • Lancer une fonction publique en lui passant des paramètres :
     $this -> nomFonction("a", 15, "x");
  • Afficher la valeur retournée par une fonction publique :
     echo $this -> nomFonction();

Vous utiliserez la fonction explode() pour convertir une liste de valeurs en un tableau numéroté :

$tab = explode(sep, ch);

où $tab est le tableau résultant de la conversion, sep représente le séparateur entre les éléments de la chaîne et ch représente la chaîne à transformer en un tableau.

Par exemple :

$ch="Hydrogène, Hélium, Lythium, Beryllium, Bore, Carbone, Azote, Oxygène, Fluor, Néon";
$tableau = explode(",", $ch);
 


Définissez le code PHP nécessaire pour afficher le tableau sur deux niveaux, comme ceci :

Quelques indices :

  • Vous devrez définir une fonction pour arriver à ce résultat
  • Pour tester si une des valeurs du tableau est un tableau, vous utiliserez la fonction is_array()

Solution

Faites une pause dans la vidéo pour vous permettre de saisir le code. Poursuivez la vidéo pour voir la solution.

Commencez par définir le tableau associatif chiffres, composé de deux tableaux associatifs : Romain et Arabe.

Pour afficher le contenu du tableau chiffres, le plus simple consiste à définir une fonction récursive, c’est-à-dire capable de s’appeler elle-même. Nous appellerons cette fonction affiche et nous lui transmettrons le tableau associatif chiffres.

Examinons le code de la fonction affiche().

La première instruction utilise une balise <blockquote&ht; pour indenter l’affichage vers la droite.

Le tableau passé à la fonction est alors parcouru.

La clé ainsi récupérée est affichée, suivi d’un espace, d’un ":" et d’un espace. Si la valeur est un tableau, la fonction affiche est appelée en lui transmettant ce tableau. Les éléments du tableau imbriqués seront donc lus et décales vers la droite grâce à la balise <blockquote>.

Si la valeur n’est pas un tableau, elle est simplement affichée, suivie d’un passage à la ligne.

La boucle foreach est suivie d’une balise </blockquote> pour mettre fin à l’indentation.

Accédez à la page localhost, déplacez-vous dans le dossier où a été enregistré le code et exécutez-le. Le résultat est bien conforme à ce qui était attendu

<?php

function affiche($a){

echo "<blockquote>";

foreach($a as $cle=>$valeur) {

echo $cle." : ";

if (is_array($valeur))

affiche($valeur);

else

echo $valeur."<br>";

}

echo "</blockquote>";

}

 

$chiffres = array("Romain" => array("un"=>"I", "deux"=>"II", "trois"=>"III", "quatre"=>"IV", "cinq"=>"V"),

"Arabe" => array("un"=>"1", "deux"=>"2", "trois"=>"3", "quatre"=>"4", "cinq"=>"5"));

affiche($chiffres);

?>


Pour définir un tableau imbriqué, c’est-à-dire un tableau qui contient des tableaux, il suffit d’imbriquer plusieurs fonctions array().

Un exemple de tableau numéroté imbriqué

$tableau = array(

array(1, 2, 3, 4, 5),

array("a", "b", "c", "d", "e"),

array("ici", "un", "peu", "de", "texte")

);

Un exemple de tableau associatif imbriqué

$tableau = array(

array("terme"=>"pomme", "définition"=>"fruit"),

array("terme"=>"courgette", "définition"=>"légume"),

array("terme"=>"banane", "définition"=>"fruit")

);

Un tableau imbriqué non symétrique

Un tableau imbriqué n’est pas forcément symétrique :

$chiffres = array("Romain" => array("un"=>"I", "deux"=>"II", "trois"=>"III", "quatre"=>"IV", "cinq"=>"V"),

"Arabe" => array("un"=>"1", "deux"=>"2", "trois"=>"3", "quatre"=>"4", "cinq"=>"5"));


Définissez un tableau numéroté qui contient les valeurs suivantes :

Jean, Pierre, Paul, Michel, Hélène, Sandrine, Christel, Isabelle, Evariste

Utilisez une boucle for pour afficher tous les éléments du tableau dans une liste à puces.

Faites une pause dans la vidéo pour vous permettre de saisir le code. Poursuivez la vidéo pour voir la solution.

Solution

Le tableau est défini à l’aide d’une instruction array.

Pour afficher son contenu dans une liste à puces, il suffit de parcourir son contenu avec une boucle for et de faire précéder chaque élément affiché par la balise li.

Remarquez également les balises ul et /ul qui encadrent les balises li.

 

<?php

$prenoms = array("Jean", " Pierre", "Paul", "Michel", "Hélène", "Sandrine", "Christel", "Isabelle", "Evariste");

echo ("<ul>");

for ($i=0; $i<9; $i++)

echo ("<li>".$prenoms[$i]);

echo("</ul>");

?>


Il existe deux types de tableaux en PHP : numérotés et associatifs.

Tableaux numérotés

Les tableaux numérotés consistent en une suite de valeurs. Chacune des valeurs est accessible par son rang dans la liste, en commençant au rang 0.

Pour créer un tableau numéroté, vous utiliserez la fonction array() :

$taille = array("très petit", "petit", "moyen", "grand", "très grand");

Pour accéder à un élément du tableau, utilisez une instruction du type suivant :

$taille[i]

Où i représente l’index de l’élément à accéder dans le tableau.