Referencia de funciones
PHP Manual

Funciones de Clases/Objetos

Introducción

Estas funciones permiten obtener información sobre clases y objetos. Se puede obtener el nombre de la clase a la que pertenece un objeto, asi como las propiedades de sus miembros y métodos. Usando estas funciones se puede obtener no solo lo comentado en la frase anterior, también se puede obtener la familia del objeto (p.ej. qué clase está extendiendo la clase a la que pertenece el objeto).

Requisitos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

En este ejemplo, definimos primero una clase base y una extensión de esta clase. La clase base define un vegetal genérico, si es comestible y su color. La subclase Spinach añade un metodo para cocinarlo y otro para saber si esta cocinado.

Example#1 classes.inc

<?php

// base class with member properties and methods
class Vegetable {

    var 
$edible;
    var 
$color;

    function 
Vegetable$edible$color="green" ) {
        
$this->edible $edible;
        
$this->color $color;
    }

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

    function 
what_color() {
        return 
$this->color;
    }
    
// end of class Vegetable

// extends the base class
class Spinach extends Vegetable {

    var 
$cooked false;

    function 
Spinach() {
        
$this->Vegetabletrue"green" );
    }

    function 
cook_it() {
        
$this->cooked true;
    }

    function 
is_cooked() {
        return 
$this->cooked;
    }
    
// end of class Spinach

?>

Creamos 2 objetos de estas clases e imprimimos información sobre ellos, incluyendo la jerarquia de clases a la que pertenecen. También definimos algunas funciones, especialmente para imprimir las variables de una manera ordenada.

Example#2 test_script.php

<pre>
<?php

include "classes.inc";

// utility functions

function print_vars($obj) {
    
$arr get_object_vars($obj);
    while (list(
$prop$val) = each($arr))
        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) {
    global $
$obj;
    if (
is_subclass_of($$obj$class)) {
        echo 
"Object $obj belongs to class ".get_class($$obj);
        echo 
" a subclass of $class\n";
    } else {
        echo 
"Object $obj does not belong to a subclass of $class\n";
    }
}

// instantiate 2 objects

$veggie = new Vegetable(true,"blue");
$leafy = new Spinach();

// print out information about objects
echo "veggie: CLASS ".get_class($veggie)."\n";
echo 
"leafy: CLASS ".get_class($leafy);
echo 
", PARENT ".get_parent_class($leafy)."\n";

// show veggie properties
echo "\nveggie: Properties\n";
print_vars($veggie);

// and leafy methods
echo "\nleafy: Methods\n";
print_methods($leafy);

echo 
"\nParentage:\n";
class_parentage("leafy""Spinach");
class_parentage("leafy""Vegetable");
?>
</pre>

One important thing to note in the example above is that the object $leafy is an instance of the class Spinach which is a subclass of Vegetable, therefore the last part of the script above will output:

       [...]
Parentage:
Object leafy does not belong to a subclass of Spinach
Object leafy belongs to class spinach a subclass of Vegetable

Table of Contents


Referencia de funciones
PHP Manual