{El php contienen un conjunto de funciones que puede acoplarse a una clase que tengas creada, a continuación mostrare el uso de las funciones y en el código daré una pequeña descripción:
aquí el código:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Conjunto de funciones que trabajan con clases appletenhtml</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<section>
<?php
//Creando clase Tnum
class Tnum{
public $num=5;
public $vrA=75;
public $b=45;
public $c=35;
//creando funcion imprimir
public function imprimir(){
echo "Imprimir <br>";
//creando funcion escribir
public static function escribir(){
echo "Escribiendo<br>";
}
public static function escribirGCC(){
var_dump(get_called_class());
}
public function func_a(){}
public function func_b(){}
public function func_c(){ echo get_class_vars(__CLASS____);}
}//fin Tnum
class a extends Tnum{
public function construir(){
echo "Soy de ".get_parent_class($this);
}
}
class b{}
//class_alias
//crea un alias de las clase
//nombre de la clase, nombre del apodo
class_alias('Tnum','P');
$vrA= new P();
$vrA->imprimir();
// class_exist
//verifica si una clase existe para usarla
if(class_exists('Tnum')){
$b= new Tnum();
$b->imprimir();
}else{echo "La clase expeficicad ano existe";}
// get_called_class
// obtiene el nombre de la clase de la que se llama el metodo estatico
Tnum::escribirGCC();
// get_class_methods
//ayuda a obtener el nombre de todos los metodos d euna clase adquiriendolos en un array
$metodos_Clase=get_class_methods('Tnum');
foreach($metodos_Clase as $nombre_metodo)
{
echo "$nombre_metodo <br>";
}
// get_class_vars
// devuelve variables de clases en un array
$propiedades_clase= get_class_vars('Tnum');
foreach($propiedades_clase as $c =>$v){
echo "$c : $v <br>";
}
// get_declared_classes
//devuelve todas la clases declaradas en el contexto definido
echo "Get declared class: <br>";
foreach(get_declared_classes() as $k=>$v){
echo "$k : $v <br>";
}
// get_declared_interfaces
echo "<br> get_declared_interfaces <br>";
//devuelve todas las interfaces declaradas
interface EjemplosDP_{}
foreach(get_declared_interfaces() as $k=>$v){
echo "$k : $v <br>";
}
// get_declared_traits
//devuelve los tratis declarados en el condigp
trait EjemplosDP{};
foreach(get_declared_traits() as $k=>$v){
echo "$k : $v <br>";
}
// get_parents_class
//obtiene nombre de las clases d eun objeto
$vrA88= new Tnum();
$b = new A();
// interface_exists
//verifica si un ainterface esta definida o no
echo "<br>interface_exists<br>";
if(interface_exists('Z')){
class c implements Z{}
}
else{echo "No existe esta interfaz<br>";}
// is_subclass_of
//Comprueba si una clas eo objetro tiene una clase como padre madre o implementa siendo hija de otra
$bb= new A();
if(is_subclass_of($bb,'Tnum')){
echo "Hija de la clase Tnum<br>";
}else{echo "No es hija de la clase Tnum<br>";}
// method_exist
//verifica is existe un method de la clase
$xst= new Tnum();
if(method_exists($xst,'func_c')){
echo "Si existe este metodo<br>";
}else{echo "no existe este metodo<br>";}
// property_exist
if(property_exists($xst,'func_c')){
echo "Si existe esta propiedad<br>";
}else{echo "no existe este propiedad<br>";}
// trait_exist
//verifica si existe un try definido
if(trait_exists('Z')){
class c{use P;}
}else{echo "no existe<br>";}
// is_a
//comprueba si un objeto es de x clase
echo "<br>is_a<br>";
if(is_a($vrA,'B')){echo "Si es instancia de la clase<br>";}else{echo "No es instancia de la clase<br>";}
// instaceof
echo "<br>instaceof<br>";
if($vrA instanceof Tnum){echo "Si es instancia de la clase<br>";}else{echo "No es instancia de la clase<br>";}
?>
</section>
</body>
</html>
Espero que mas de alguna de las funciones te sea de utilidad.
}