Typage objet

PHP cours tutorial

Le typage objet implicite

Quand vous passez des paramètres à une méthode, vous pouvez exiger de ces paramètres un type à respecter.

PHP 5 introduit le typage objet implicite (littéralement, Type Hinting). Les méthodes peuvent maintenant imposer aux paramètres d'être des objets (en spécifiant le nom de la classe dans le prototype de la méthode) ou des tableaux (depuis PHP 5.1).

Cependant, si NULL est utilisé en tant que valeur par défaut du paramètre, il sera autorisé comme argument pour tous les futurs appels.

Pour bien comprendre, on passe à l’exemple.

Exemple :

Sélectionner le code

  <?php
  // Un exemple de classe
  class MaClasse
  {
      /* Méthode de test
         Le premier argument doit être un objet de type AutreClasse
       */
      public function test(AutreClasse $autreclasse) {
          echo $autreclasse->var;
      }
      /* Une autre méthode de test Le premier argument doit être un array (tableau) */
      public function test_array(array $tableau) {
          print_r($tableau);
      }
  }
  // Un autre exemple de classe
  class AutreClasse {
      public $var = 'Bonjour le monde!';
  }
  //Un objet $maclasse
  $maclasse = new MaClasse;
  //Un onjet autreclasse
  $a = new AutreClasse;
  /* Appel de la méthode test() qui affiche "Bonjour le monde"*/
  $maclasse->test($a);
  echo '<br />';
  // Appel de la méthode test_array() qui affiche le tableau
  $tab = array('a', 10, 'b');
  $maclasse->test_array($tab);
  echo '<br />';
  $maclasse->test_array(array(10,'ab',1254));
  ?>

 

En appelant la méthode test() on doit lui passer un argument de type AutreClasse, et c’est ce que nous avons fait.

Puisque  $a est un objet de type AutreClasse.

De même pour l’appel de la méthode test_array() qui demande un argument de type array.

En conclusion pour exiger un type dans une méthode on va donc  précéder l'argument ($a) du type demandé (AutreClasse).

comme suit :

public function test(AutreClasse $autreclasse)

Note : 

Le type de la variable à spécifier doit obligatoirement être un nom de classe (un objet) ou alors un tableau. Si vous voulez exiger un tableau, faites précéder le nom du paramètre qui doit être un tableau du mot-clé array comme ceci :
public function test_array(array $tableau).

Il n’est pas possible d’exiger autre type comme un entier (integer) ou une chaîne de caractère (string). …

Le typage fonctionne aussi avec les fonctions :

Exemple :

Sélectionner le code

  <?php
  // Un exemple de classe
  class MaClasse {
      public $var = 'Bonjour le monde!';
  }
  /**
   * Fonction de test
   *
   * Le premier paramètre doit être un objet de type MaClasse
   */
  function MaFonction(MaClasse $bar) {
      echo $bar->var;
  }
  // Fonctionne
  $maclasse = new MaClasse;
  MaFonction($maclasse);
  ?>

 

Pour que le typage objet autorise les valeurs NULL :

Exemple :

Sélectionner le code

   <?php 
   /* On accepte la valeur NULL */ 
   function test(stdClass $obj = NULL) { 
   } 
   test(  NULL); 
   test(  new stdClass); 
   ?> 

 


Par carabde 20 Aout 2014

  • Trafic Booster
    hebergement web

    SCREEBER - Logiciel de copywriting

    SCREEBER - Logiciel de copywriting Augmentez vos résultats en rejoignant les 1600 entrepreneurs qui utilisent Screeber®, le seul logiciel de Copywriting (en français) qui rédige avec vous des textes de vente qui convertissent


    HTML5, CSS3, JavaScript pour débutants Tome 1
    HTML5, CSS3, JavaScript
    pour débutants Tome 1

    Premier tome d'une série vidéo dédiée à l'apprentissage des langages HTML, CSS et JavaScript.

    Regarder aussi nos cours :

    Balise meter>

    Définit une mesure scalaire dans une plage connue (une jauge)

    Inline SVG

    Inline SVG Plus de dessin avec html5

    Balise bdi

    Isole une partie de texte qui peuvent être mis en forme dans une direction différente du reste du texte extérieur



    Rentabilisez efficacement votre site