<?php interface Serializable {     // ... }
  class Object {     // ... }
  /**  * Une classe compteur  *  */ class Counter extends Object implements Serializable  {     const START = 0;     private static $c = Counter::START;
      /**      * Invocation du compteur      *      * @access  public      * @return  int      */     public function count()     {         return self::$c++;     } }
  // Création d'une instance de la classe ReflectionClass $class = new ReflectionClass('Counter');
  // Affichage d'informations basiques printf(     "===> La %s%s%s %s '%s' [extension de %s]\n".     "     déclarée dans %s\n".     "     lignes %d à %d\n".     "     a le modificateur %d [%s]\n",     $class->isInternal() ? 'internal' : 'user-defined',     $class->isAbstract() ? ' abstract' : '',     $class->isFinal() ? ' final' : '',     $class->isInterface() ? 'interface' : 'class',     $class->getName(),     var_export($class->getParentClass(), 1),     $class->getFileName(),     $class->getStartLine(),     $class->getEndline(),     $class->getModifiers(),     implode(' ', Reflection::getModifierNames($class->getModifiers())) );
  // Affichage du commentaire de la documentation printf("---> Documentation:\n %s\n", var_export($class->getDocComment(), 1));
  // Affichage de l'interface qui implémente cette classe printf("---> Implémenté :\n %s\n", var_export($class->getInterfaces(), 1));
  // Affichage des constantes de la classe printf("---> Constantes : %s\n", var_export($class->getConstants(), 1));
  // Affichage des propriétés de la classe printf("---> Properties: %s\n", var_export($class->getProperties(), 1));
  // Affichage des méthodes de la classe printf("---> Méthodes : %s\n", var_export($class->getMethods(), 1));
  // Si cette classe est instanciable, création d'une instance if ($class->isInstantiable()) {     $counter = $class->newInstance();
      echo '---> $counter est uneinstance ? ';      echo $class->isInstance($counter) ? 'oui' : 'non';
      echo "\n---> Le nouvel objet Object() est une instance ? ";     echo $class->isInstance(new Object()) ? 'oui' : 'non'; } ?>
 
 |