PHP: Hypertext Preprocessor (original) (raw)

ReflectionClass::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionClass::__construct — Constructs a ReflectionClass

Description

public ReflectionClass::__construct(object|string $objectOrClass)

Parameters

objectOrClass

Either a string containing the name of the class to reflect, or an object.

Examples

Example #1 Basic usage ReflectionClass

<?php $reflection = new ReflectionClass('Exception'); echo $reflection; ?>

The above example will output something similar to:

Class [ internal:Core class Exception implements Stringable, Throwable ] {

} }

Found A Problem?

danbettles at yahoo dot co dot uk

9 years ago

`To reflect on a namespaced class in PHP 5.3, you must always specify the fully qualified name of the class - even if you've aliased the containing namespace using a "use" statement.

So instead of:

You would type:

`

me [at] klay [dot] me

11 years ago

`Example of usage:

public static function getClassData($class)
{
// Trying to create a new object of ReflectionClass class
class=newReflectionClass(class = new ReflectionClass(class=newReflectionClass(class);

$details = sprintf('%s - %s%s%s%s%s%s%s%s',
$class->getName(),
$class->isInternal() ? 'internal class,' : 'user-defined class,',
$class->isTrait() ? ' is trait,' : '',
$class->isInterface() ? ' is interface,' : '',
$class->isAbstract() ? ' is abstract,' : '',
$class->isFinal() ? ' is final,' : '',
$class->isCloneable() ? ' is cloneable,' : '',
$class->isInstantiable() ? ' is instantiable,' : '',
$class->isIterateable() ? ' is iterable : ''
);

return '

' . rtrim($details, ',') . '
';
}

`

gafisher at griasolutions dot com

13 years ago

`Running the following code on Windows Vista (I know, I know), PHP 5.3.9, the ReflectionClass constructor actually throws a ReflectionException when the desired class cannot be instantiated:

`

nicosp at gmail dot com

2 months ago

Technically the function will also throw ParseError in case the class cannot be parsed.

ivo at jansch dot nl

15 years ago

`It's very useful to know that you can also use the ReflectionClass to inspect interfaces, even thouth Interfaces are not classes. Example:

methods=methods = methods=refl->getMethods(); ?>

[Edit by danbrown AT php DOT net - Contains a bugfix by (dbl AT bnet DOT com) on 18-AUG-2010 with the following message: "underline had to be removed for it to work ( new Reflection_Class -> new ReflectionClass )"]

`

cspray at gmail dot com

13 years ago

`Useful to know that if you pass a string into the construct and the class cannot be instantiated for some reason a SPL LogicException will be thrown.

This code was ran on a Mac OS X 10.6.7, AMP, PHP 5.3+

Will return a deeply nested array full of useful information about the error.

`