Class information: is Abstract, is Final and is Instantiable : Reflection Class Definition « Class « PHP






Class information: is Abstract, is Final and is Instantiable


<?php
class Person {
    private $name;    
    private $age;    
    private $id;    

    function __construct( $name, $age ) {
        $this->name = $name;
        $this->age = $age;
    }

    function setId( $id ) {
        $this->id = $id;
    }
    
    function getId(){
        echo "get id method";    
    }
    
    function __clone() {
        $this->id = 0;
    }
}

$p = new ReflectionClass( 'Person' );

print classData( $p );

function classData( ReflectionClass $class ) {
  $details = "";
  $name = $class->getName();
  if ( $class->isAbstract() ) {
    $details .= "$name is an abstract class\n"; 
  }
  if ( $class->isFinal() ) {
    $details .= "$name is a final class\n"; 
  }
  if ( $class->isInstantiable() ) {
    $details .= "$name can be instantiated\n"; 
  } else {
    $details .= "$name can not be instantiated\n"; 
  }
  return $details;
}

?>

           
       








Related examples in the same category

1.get_declared_classes: get all defined class
2.Get class name
3.Get class information: file name, start line and end line
4.Class information: is User Defined, is Internal and is Interface
5.Use Reflection class to export class
6.var_dump a class
7.get_class_vars: get class variables