The ReflectionProperty class

Introduction

The ReflectionProperty class reports information about class properties.

Class synopsis

ReflectionProperty
implements Reflector
/* Constants */
public const int ReflectionProperty::IS_STATIC;
public const int ReflectionProperty::IS_READONLY;
public const int ReflectionProperty::IS_PUBLIC;
public const int ReflectionProperty::IS_PROTECTED;
public const int ReflectionProperty::IS_PRIVATE;
public const int ReflectionProperty::IS_ABSTRACT;
public const int ReflectionProperty::IS_PROTECTED_SET;
public const int ReflectionProperty::IS_PRIVATE_SET;
public const int ReflectionProperty::IS_VIRTUAL;
public const int ReflectionProperty::IS_FINAL;
/* Properties */
public string $name;
public string $class;
/* Methods */
public __construct(objectstring $class, string $property)
private void __clone()
public static string export(mixed $class, string $name, bool $return = ?)
public array getAttributes(stringnull $name = null, int $flags = 0)
public ReflectionClass getDeclaringClass()
public mixed getDefaultValue()
public stringfalse getDocComment()
public int getModifiers()
public string getName()
public ReflectionTypenull getType()
public mixed getValue(objectnull $object = null)
public bool hasDefaultValue()
public bool hasType()
public bool isDefault()
public bool isInitialized(objectnull $object = null)
public bool isLazy(object $object)
public bool isPrivate()
public bool isPromoted()
public bool isProtected()
public bool isPublic()
public bool isReadOnly()
public bool isStatic()
public void setAccessible(bool $accessible)
public void setRawValueWithoutLazyInitialization(object $object, mixed $value)
public void setValue(object $object, mixed $value)
public void skipLazyInitialization(object $object)
public string __toString()

Properties

name

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

class

Name of the class where the property is defined. Read-only, throws ReflectionException in attempt to write.

Predefined Constants

ReflectionProperty Modifiers

ReflectionProperty::IS_STATIC

Indicates static properties. Prior to PHP 7.4.0, the value was 1.

ReflectionProperty::IS_READONLY

Indicates readonly properties. Available as of PHP 8.1.0.

ReflectionProperty::IS_PUBLIC

Indicates public properties. Prior to PHP 7.4.0, the value was 256.

ReflectionProperty::IS_PROTECTED

Indicates protected properties. Prior to PHP 7.4.0, the value was 512.

ReflectionProperty::IS_PRIVATE

Indicates private properties. Prior to PHP 7.4.0, the value was 1024.

ReflectionProperty::IS_ABSTRACT
Indicates the property is abstract. Available as of PHP 8.4.0.
ReflectionProperty::IS_PROTECTED_SET
Available as of PHP 8.4.0.
ReflectionProperty::IS_PRIVATE_SET
Available as of PHP 8.4.0.
ReflectionProperty::IS_VIRTUAL
Available as of PHP 8.4.0.
ReflectionProperty::IS_FINAL
Indicates the property is final. Available as of PHP 8.4.0.

Note:

The values of these constants may change between PHP versions. It is recommended to always use the constants and not rely on the values directly.

Changelog

Version Description
8.4.0 Added ReflectionProperty::IS_VIRTUAL, ReflectionProperty::IS_PRIVATE_SET, ReflectionProperty::IS_PROTECTED_SET, ReflectionProperty::IS_ABSTRACT, and ReflectionProperty::IS_FINAL.
8.0.0 ReflectionProperty::export was removed.
Table of Contents