original_string: protected function is_sub_class_of($class_name, $should, $allow_abstract = false){
          if( class_exists($class_name) ){
              // Check if this is subclass
              $refl = new \ReflectionClass($class_name);
              return ( $allow_abstract || !$refl->isAbstract() ) && $refl->isSubclassOf($should);
          }
          return false;
      }
code: protected function is_sub_class_of($class_name, $should, $allow_abstract = false){
          if( class_exists($class_name) ){
              // Check if this is subclass
              $refl = new \ReflectionClass($class_name);
              return ( $allow_abstract || !$refl->isAbstract() ) && $refl->isSubclassOf($should);
          }
          return false;
      }
code_tokens: protected function is_sub_class_of ( $ class_name , $ should , $ allow_abstract = false ) { if ( class_exists ( $ class_name ) ) { // Check if this is subclass $ refl = new \ ReflectionClass ( $ class_name ) ; return ( $ allow_abstract || ! $ refl -> isAbstract ( ) ) && $ refl -> isSubclassOf ( $ should ) ; } return false ; }
docstring: Detect if specifies class is subclass
  
  @param string $class_name
  @param string $should Parent class name
  @param bool $allow_abstract Default false
  @return bool
docstring_tokens: Detect if specifies class is subclass