Rechercher une fonction PHP

XII. Classes et Objets

Introduction

Ces fonctions vous donnent des informations sur les objets et les classes. Vous pouvez lire le nom de la classe qui est instanciée par un objet, ainsi que la liste des membres et des méthodes. En utilisant ces fonctions, vous pouvez non seulement connaître la classe d'un objet, mais aussi tous ses ascendants (i.e. la classe qui est étendue par une autre classe).

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Dans cet exemple, on définit une classe de base, et une extension. La classe de base définit un légume, s'il est mangeable ou pas et sa couleur. La sous-classe epinard ajoute une méthode pour le cuisiner, et une autre pour savoir s'il est cuisiné.

Exemple 1. Fonctions d'objets : classes.inc

<?php

// classe de base, avec ses membres et ses méthodes
class Legume {

   var
$edible;
   var
$color;

   function
Legume( $edible, $color="green" ) {
      
$this->edible = $edible;
      
$this->color = $color;
   }

   function
is_edible() {
       return
$this->edible;
   }

   function
what_color() {
       return
$this->color;
   }
  
}
// fin de la classe Legume

// Extension la classe de base
class Epinard extends Legume {
   var
$cuit = FALSE;
   function
Epinard() {
      
$this->Legume( TRUE, "green" );
   }
   function
cuisine() {
      
$this->cuit = TRUE;
   }

   function
is_cooked() {
       return
$this->cooked;
   }
  
}
// fin de la classe Epinard

?>

Lorsqu'on instancie deux objets de ces classes et que l'on affiche leurs informations, on affiche aussi leur héritage. On définit ici des utilitaires qui servent essentiellement à afficher ces informations proprement.

Exemple 2. Fonctions d'objets : test_script.php

<pre>
<?php

include "classes.inc";

// Fonctions utilitaires
function print_vars($obj)
{
     foreach (
get_object_vars($obj) as $prop => $val) {
         echo
"\t$prop = $val\n";
     }
}

function
print_methods($obj)
{
  
$arr = get_class_methods(get_class($obj));
   foreach (
$arr as $method) {
       echo
"\tfunction $method()\n";
   }
}

function
class_parentage($obj, $class) {
   if (
is_subclass_of($GLOBALS[$obj], $class)) {
       echo
"L'objet $obj appartient à la classe ".get_class($$obj);
       echo
" est une sous-classe de $class\n";
   } else {
       echo
"L'objet $obj n'est pas une sous-classe de $class\n";
   }
}

// instantie 2 objets

$veggie = new Legume(true,"blue");
$leafy = new Epinard();

// affiche les informations sur ces objets
echo "légume : CLASS ".get_class($veggie)."\n";
echo
"feuillues : CLASS ".get_class($leafy);
echo
", PARENT ".get_parent_class($leafy)."\n";

// affiche les propriétés du légume
echo "\nlégumes : Propriétés\n";
print_vars($veggie);

// et les méthodes des feuillus
echo "\nfeuillus : Méthodes\n";
print_methods($leafy);

  echo
"\nParentée:\n";
class_parentage("leafy", "Epinard");
class_parentage("leafy", "Legume");
?>
</pre>

Il est important de noter que dans les exemples ci-dessus, les objets $feuilles sont une instance de Epinard qui est une sous-classe de Legume, donc la dernière partie du script va afficher :

[...]
    Parentée:
    L'objet feuilles n'est pas une sous classe epinard
    L'objet feuilles est une sous-classe de Legume

Table des matières
call_user_method_array --  Appelle une méthode utilisateur avec un tableau de paramètres
call_user_method --  Appelle une méthode utilisateur d'un objet
class_exists -- Vérifie qu'une classe a été définie
get_class_methods -- Retourne les noms des méthodes d'une classe
get_class_vars --  Retourne les valeurs par défaut des propriétés d'une classe
get_class -- Retourne la classe d'un objet
get_declared_classes -- Liste toutes les classes définies
get_declared_interfaces --  Retourne un tableau avec toutes les interfaces déclarées
get_object_vars --  Retourne un tableau associatif des propriétés d'un objet
get_parent_class -- Retourne le nom de la classe d'un objet
interface_exists -- Vérifie si une interface a été définie
is_a --  Retourne TRUE si un objet a pour parent une classe donnée
is_subclass_of -- Détermine si un objet est une sous-classe
method_exists -- Vérifie que la méthode existe pour une classe
property_exists --  Vérfie si un objet ou une classe a une propriété


Rechercher une fonction PHP

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

11 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Références

  1. Consulter le document html Langue du document: fr Manuel PHP : http://be2.php.net, classes et objets PHP

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-528
Document créé le 13/07/06 21:36, dernière modification le Vendredi 17 Juin 2011, 12:12
Source du document imprimé : http://www.gaudry.be/php-rf-ref.classobj.html Document affiché 1 fois ce mois de Juin.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,40 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Le rôle d'un ami, c'est de se trouver à votre côté quand vous êtes dans l'erreur puisque tout le monde sera à côté de vous quand vous aurez raison.

Mark Twain
 
l'infobrol
Nous sommes le Dimanche 03 Juin 2012, 06:36, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)