2009-03-20 4 views

Répondre

35

Utiliser la réflexion. ReflectionClass->isAbstract()

utiliser comme ceci:

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

m'a battu de 30 secondes ... –

+0

Est-il possible de le faire * * sans l'aide ReflectionClass (pour que je n » t vous devez implémenter les méthodes ReflectionClass?) –

+0

vous venez de passer le nom de votre classe au constructeur ReflectionClass – vartec

4

Vous pouvez utiliser Reflection la classe.

+0

enfin je suis plus rapide ;-) – vartec

+0

hah, je vous ai aussi mis à jour. Merde, a dû garder ce bref pour essayer de passer en premier, mais vous gagnez :) – jonstjohn

0

Si vous avez besoin de vérifier cela en cours d'exécution, je vous suggère de réévaluer votre architecture d'application.

Vous ne devriez jamais essayer de le faire à moins de créer une application extrêmement complexe pour inspecter d'autres codes que vous ne pouvez pas modifier.

+3

Merci de ne pas avoir répondu à ma question. –

+0

C'était juste une suggestion ... BTW, merci pour downvoting pour suggérer quelque chose. – Seb

+0

@KeithPalmerJr. C'est en fait une réponse juste. –

4
<?php 

abstract class Picasso 
{ 
    public function __construct() 
    { 

    } 
} 

$class = new ReflectionClass('Picasso'); 

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

?> 

Voir le manuel: www.php.net/oop5.reflection

Questions connexes