Otras funciones interesantes para trabajar con clases y objetos
A continuación se muestra una serie atributos y funciones que pueden usarse para facilitar el trabajo de clases y objetos:
METHOD: Pseudo constante que nos informa el nombre de la clase y del método, cuando estamos dentro de una clase, o el nombre de la función, cuando estamos dentro de una función normal.
class_exists (pclase): devuelve True si ha sido definida la clase "pclase"
get_class_method (pclase): devuelve un array con todos los métodos de la clase pclase pasada como parámetro
is_subclass_of (pobjeto, pclase): Devuelve True si el objeto pertenece a una clase que es subclase de la clase pclase pasada como parámetro.
Más funciones en http://docs.php.net/manual/es/a.classobj.php
<?php
print <B><U>Varias funciones para tratar
con clases y objetos</U></B><BR><BR> ;
// Definición de la clase Persona
Class Persona {
protected $identificador;
protected $nombre;
function __construct($id, $name){
$this->identificador = $id;
$this->nombre = $name;
}
function Imprimir(){
print $this->identificador;
}
}
// Definición de la clase Empleado derivada de la clase Persona
Class Empleado extends Persona {
private $seccion;
function __construct($id, $name, $seccion){
$this->identificador = $id;
$this->nombre = $name;
$this->seccion = $seccion;
print .
__METHOD__;
}
function Listar(){
print ;
}
}
// Se genera un objeto de la clase Persona
$per = new Persona(1222, );
// Se genera un objeto de la clase Empleado
$emp = new Empleado(99, );
// Función class_exists()
if (class_exists('Persona')) {
print ;
}
// Función get_class()
print <BR><B>2. Función get_class().
</B>La clase del objeto \$per es : . get_class($per) ;
// Función get_class_methods()
print <BR><B>3. Función get_class_methods().
</B>…stos son los métodos de la clase Persona : ;
print_r (get_class_methods( )) ;
// Función get_class_vars()
print <BR><B>4. Función get_class_vars().
</B>…stas son las propiedades de la clase Persona : ;
print_r (get_class_vars( ));
// Función get_declared_classes()
print <BR><B>5. Función get_declared_classes().
</B>…stas son las clases definidas : ;
print_r (get_declared_classes()) ;
// Función get_object_vars()
print <BR><B>6. Función get_object_vars().
</B>…stas son las propiedades del objeto \$emp : ;
print_r (get_object_vars($emp));
// Función get_parent_class()
print <BR><B>7. Función get_parent_class().
</B>…sta es la clase base del objeto \$emp : . get_parent_class($emp);
// Función getType()
print <BR><B>8. Función getType().
</B>…ste es el tipo de la variable \$emp: . gettype($emp);
// Función is_a()
if (is_a($emp, )){
print <BR><B>9. Función is_a().
</B>El objeto \$emp pertenece a la clase Empleado. ;
}
//Operador instanceof
if ($emp instanceof Empleado){
print <BR><B>9. Función instanceof.
</B>El objeto \$emp pertenece a la clase Empleado ;
}
// Función is_subclass_of()
if (is_subclass_of($emp, )){
print <BR><B>10. Función is_subclass_of().
</B>El objeto \$emp es subclase de la clase Persona. ;
}
// Función method_exists()
if (method_exists($emp, )){
print <BR><B>11. Función method_exists().
</B>El objeto \$emp contiene el método Listar. ;
}
// Función setType()
$vardbl = 23;
settype($vardbl, );
print <BR><B>12. Función setType().
</B>…ste es el tipo de la variable \$vardbl: . gettype($vardbl);
?>
Parte de la ejecución del código anterior:
Varias funciones para tratar con clases y objetos
- Uso de la constante METHOD : Empleado::__construct
- Función class_exists(). La clase Persona ya existe.
- Función get_class(). La clase del objeto $per es :Persona
- Función get_class_methods(). Éstos son los métodos de la clase Persona : Array ( [0] => __construct [1] => Imprimir )
- Función get_class_vars(). Éstas son las propiedades de la clase Persona : Array ( )
- Función get_declared_classes(). Éstas son las clases definidas : Array ( [0] => stdClass [1] => Exception [2] => ErrorException ... [137] => ZipArchive [138] => paradox_db [139] => Persona [140] => Empleado )
- Función get_object_vars(). Éstas son las propiedades del objeto $emp : Array ( )
- Función get_parent_class(). Ésta es la clase base del objeto $emp : Persona
- Función getType(). Éste es el tipo de la variable $emp: object
- Función instanceof. El objeto $emp pertenece a la clase Empleado
- Función is_subclass_of(). El objeto $emp es subclase de la clase Persona.
- Función method_exists(). El objeto $emp contiene el método Listar.
- Función setType(). Éste es el tipo de la variable $vardbl: double
```