2009-03-20 5 views

Respuesta

35

Utilice la reflexión. ReflectionClass->isAbstract()

utilizar de esta manera:

$class = new ReflectionClass('NameOfTheClass'); 
$abstract = $class->isAbstract(); 
+0

golpearme por 30 segundos ... –

+0

¿Hay una manera de hacerlo sin * * usando ReflectionClass (de modo que yo no' ¿Necesito implementar los métodos ReflectionClass?) –

+0

acaba de pasar el nombre de su clase al constructor de ReflectionClass – vartec

4

Puede utilizar Reflection en la clase.

+0

por fin soy más rápido ;-) – vartec

+0

ja, yo también te subí de categoría. Maldita sea, tuve que mantener ese breve para tratar de llegar primero, pero ganas :) – jonstjohn

0

Si es necesario comprobar esto en tiempo de ejecución, sugeriría que volver a evaluar la arquitectura de su aplicación.

Nunca se debe intentar hacer esto a menos que usted está construyendo una aplicación extremadamente compleja para inspeccionar otro código que no se puede cambiar.

+3

Gracias por no responder mi pregunta. –

+0

Fue solo una sugerencia ... Por cierto, gracias por la votación negativa por sugerir algo. – Seb

+0

@KeithPalmerJr. esto en realidad es una respuesta justa. –

4
<?php 

abstract class Picasso 
{ 
    public function __construct() 
    { 

    } 
} 

$class = new ReflectionClass('Picasso'); 

if($class->isAbstract()) 
{ 
    echo "Im abstract"; 
} 
else 
{ 
    echo "Im not abstract"; 
} 

?> 

Consulte el manual: www.php.net/oop5.reflection

Cuestiones relacionadas