&reftitle.examples; En este ejemplo, primero definimos una clase base y una extensión de la misma. La clase base describe una verdura en general, si es comestible o no y cuál es su color. La subclase Espinaca añade un método para cocinarla y otro para averiguar si está cocinada. classes.inc comestible = $comestible; $this->color = $color; } function es_comestible() { return $this->comestible; } function qué_color() { return $this->color; } } // fin de la clase Verdura // extender la clase base class Espinaca extends Verdura { var $concinada = false; function Espinaca() { $this->Verdura(true, "verde"); } function cocinarla() { $this->concinada = true; } function está_cocinada() { return $this->concinada; } } // fin de la clase Espinaca ?> ]]> Entonces instanciamos dos objetos de estas clases e imprimimos la información sobre ellos, incluida su linaje de clases. También definimos algunas funciones de utilidad, prinpipalmente para tener una impresión atractiva de las variables. test_script.php $val) { echo "\t$prop = $val\n"; } } function imprimir_métodos($obj) { $arr = get_class_methods(get_class($obj)); foreach ($arr as $método) { echo "\tfunción $método()\n"; } } function linaje_de_clases($obj, $clase) { if (is_subclass_of($GLOBALS[$obj], $clase)) { echo "El objeto $obj pertenece a la clase " . get_class($GLOBALS[$obj]); echo ", una subclase de $clase\n"; } else { echo "El objeto $obj no pertenece a una subclase de $clase\n"; } } // instancias 2 objetos $vegetariano = new Verdura(true, "blue"); $frondoso = new Espinaca(); // imprimir información sobre los objetos echo "vegetariano: CLASE " . get_class($vegetariano) . "\n"; echo "frondoso: CLASE " . get_class($frondoso); echo ", MADRE " . get_parent_class($frondoso) . "\n"; // mostrar las propiedades de vegetariano echo "\nvegetariano: Propiedades\n"; imprimir_vars($vegetariano); // y los métodos de frondoso echo "\nfrondoso: Métodos\n"; imprimir_métodos($frondoso); echo "\nLinaje:\n"; linaje_de_clases("frondoso", "Espinaca"); linaje_de_clases("frondoso", "Verdura"); ?> ]]> Una cosa importanete a observar en el ejemplo anterior es que el objeto $frondoso es una instancia de la clase Espinaca que es una subclase de Verdura, por lo tanto, la última parte del script anterior imprimirá: