• Guadeloupe - Saint Martin - Martinique - Guyane
    création de sites web, intranet, extranet  PHP, mySQL, Zope, Apache, Linux

IPEOS

Sections
Personal tools
You are here: Home » Support » Documentation » PHP » language.oop5.typehinting.html

language.oop5.typehinting.html

Document Actions
Typage objet

Typage objet

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

Exemple 19-47. Exemple de typage d'objets

<?php
// Un exemple de classe
class MaClasse
{
    
/**
     * Fonction de test
     *
     * Le premier paramètre doit être un objet de type AutreClasse
     */
    
public function test(AutreClasse $autreclasse) {
        echo
$autreclasse->var;
    }
}

// Un autre exemple de classe
class AutreClasse {
    
public $var = 'Bonjour le monde!';
}
?>

Si le paramètre ne satisfait pas les conditions imposées, une erreur fatale est émise.

<?php
// Une instance de chaque classe
$maclasse = new MaClasse;
$autreclasse = new AutreClasse;

// Fatal Error: Argument 1 must be an object of class AutreClasse
$maclasse->test('salut');

// Fatal Error: Argument 1 must be an instance of AutreClasse
$foo = new stdClass;
$maclasse->test($foo);

// Fatal Error: Argument 1 must not be null
$maclasse->test(null);

// Fonctionne : Affiche 'Bonjour le monde!'
$maclasse->test($autreclasse);
?>

Le typage fonctionne aussi avec les fonctions :

<?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 $foo) {
    echo
$foo->var;
}

// Fonctionne
$maclasse = new MaClasse;
MaFonction($maclasse);
?>

Le typage de paramètre ne fonctionne qu'avec les variables de type object. Le typage avec les types traditionnels, tels que int et string, n'est pas supporté.

- Extranet

 

IPEOS - SARL au capital de 7500 € - RCS Pointe-à-Pitre 452 890 288 - Guadeloupe (French West Indies) - CNIL Dossier n° 1012327

IPEOS - Informatique Internet Guadeloupe Saint Martin Martinique Guyane Powered by Plone IPEOS utilise AlternC

This site conforms to the following standards: