W3cubDocs

/PHP

The ReflectionClass class

Introduction

(PHP 5, PHP 7, PHP 8)

The ReflectionClass class reports information about a class.

Class synopsis

class ReflectionClass implements Reflector {
/* Constants */
public const int IS_IMPLICIT_ABSTRACT;
public const int IS_EXPLICIT_ABSTRACT;
public const int IS_FINAL;
public const int IS_READONLY;
public const int SKIP_DESTRUCTOR;
/* Properties */
public string $name;
/* Methods */
public __construct(object|string $objectOrClass)
public static export(mixed $argument, bool $return = false): string
public getAttributes(?string $name = null, int $flags = 0): array
public getConstant(string $name): mixed
public getConstants(?int $filter = null): array
public getConstructor(): ?ReflectionMethod
public getDefaultProperties(): array
public getDocComment(): string|false
public getEndLine(): int|false
public getExtension(): ?ReflectionExtension
public getExtensionName(): string|false
public getFileName(): string|false
public getInterfaceNames(): array
public getInterfaces(): array
public getLazyInitializer(object $object): ?callable
public getMethod(string $name): ReflectionMethod
public getMethods(?int $filter = null): array
public getModifiers(): int
public getName(): string
public getNamespaceName(): string
public getParentClass(): ReflectionClass|false
public getProperties(?int $filter = null): array
public getProperty(string $name): ReflectionProperty
public getReflectionConstant(string $name): ReflectionClassConstant|false
public getReflectionConstants(?int $filter = null): array
public getShortName(): string
public getStartLine(): int|false
public getStaticProperties(): array
public getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public getTraitAliases(): array
public getTraitNames(): array
public getTraits(): array
public hasConstant(string $name): bool
public hasMethod(string $name): bool
public hasProperty(string $name): bool
public implementsInterface(ReflectionClass|string $interface): bool
public initializeLazyObject(object $object): object
public inNamespace(): bool
public isAbstract(): bool
public isAnonymous(): bool
public isCloneable(): bool
public isEnum(): bool
public isFinal(): bool
public isInstance(object $object): bool
public isInstantiable(): bool
public isInterface(): bool
public isInternal(): bool
public isIterable(): bool
public isReadOnly(): bool
public isSubclassOf(ReflectionClass|string $class): bool
public isTrait(): bool
public isUninitializedLazyObject(object $object): bool
public isUserDefined(): bool
public markLazyObjectAsInitialized(object $object): object
public newInstance(mixed ...$args): object
public newInstanceArgs(array $args = []): ?object
public newInstanceWithoutConstructor(): object
public newLazyGhost(callable $initializer, int $options = 0): object
public newLazyProxy(callable $factory, int $options = 0): object
public resetAsLazyGhost(object $object, callable $initializer, int $options = 0): void
public resetAsLazyProxy(object $object, callable $factory, int $options = 0): void
public setStaticPropertyValue(string $name, mixed $value): void
public __toString(): string
}

Properties

name

Name of the class. Read-only, throws ReflectionException in attempt to write.

Predefined Constants

ReflectionClass Modifiers

ReflectionClass::IS_IMPLICIT_ABSTRACT int

Indicates the class is abstract because it has some abstract methods.

ReflectionClass::IS_EXPLICIT_ABSTRACT int

Indicates the class is abstract because of its definition.

ReflectionClass::IS_FINAL int

Indicates the class is final.

ReflectionClass::IS_READONLY int

Indicates the class is readonly.

ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE int
Indicates that serialize() should not trigger initialization of a lazy object.
ReflectionClass::SKIP_DESTRUCTOR int
Indicates an object destructor should not be called when resetting it as lazy.

Changelog

Version Description
8.4.0 The class constants are now typed.
8.0.0 ReflectionClass::export() was removed.

Table of Contents

© 1997–2025 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/class.reflectionclass.php