PHP
PHP / MySql

Recherche
 
ManuelPHP.com

Constantes pré-définies
<<<
Exemples call_user_method_array
>>>

8.11 Classes et Objets
8 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes pré-définies
->Exemples
call_user_method_array
call_user_method
class_exists
get_class_methods
get_class_vars
get_class
get_declared_classes
get_declared_interfaces
get_object_vars
get_parent_class
interface_exists
is_a
is_subclass_of
method_exists
property_exists

8.11.7 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é.

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.

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>

<< Exemples >>
Constantes pré-définies Classes et Objets call_user_method_array





Google

Services webmasters

Les manuels
 

ManuelPHP.com © 2003-2012 Tigersun - Crédits
Webmaster Site Internet - Télécharger des Logiciels - Programme TV - Entraide Informatique - Agence de Communication
2018-07-18