|
Typage objetPHP 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) ou des tableaux (depuis PHP 5.1).
<?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; } /** * Une autre fonction de test * * Le premier paramètre doit être un tableau */ public function test_array(array $input_array) { print_r($input_array); } } // Un autre exemple de classe class AutreClasse { public $var = 'Bonjour le monde!'; } ?>
<?php // Une instance de chaque classe $maclasse = new MaClasse; $autreclasse = new AutreClasse; // Erreur fatale : Argument 1 doit être un objet de la classe AutreClasse $maclasse->test('salut'); // Erreur fatale : Argument 1 doit être une instance de AutreClasse $foo = new stdClass; $maclasse->test($foo); // Erreur fatale : Argument 1 ne doit pas être null $maclasse->test(null); // Fonctionne : Affiche 'Bonjour le monde!' $maclasse->test($autreclasse); // Erreur fatale : Argument 1 doit être un tableau $myclass->test_array('a string'); // Fonctionne : Affiche le tableau $myclass->test_array(array('a', 'b', 'c')); ?>
<?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 et array. Le typage avec les types traditionnels, tels que int et string, n’est pas supporté. Travail collaboratifContribuez, en ajjoutant des elements a cette page de manuel : Merci de votre aide |