# ReflectionProperty 类

(PHP 5, PHP 7, PHP 8)

## 简介

ReflectionProperty 类报告有关类属性的信息。

## 类摘要

class ReflectionProperty implements Reflector {
/* 常量 */
public const int IS_STATIC;
public const int IS_READONLY;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_ABSTRACT;
public const int IS_PROTECTED_SET;
public const int IS_PRIVATE_SET;
public const int IS_VIRTUAL;
public const int IS_FINAL;
/* 属性 */
public string $name;
public string $class;
/* 方法 */
public function __construct(object|string `$class`, string `$property`)
private function __clone(): void
public static function export(mixed `$class`, string `$name`, bool `$return` = ?): string
public function getAttributes(?string `$name` = `null`, int `$flags` = 0): array
public function getDeclaringClass(): ReflectionClass
public function getDefaultValue(): mixed
public function getDocComment(): string|false
public function getHook(PropertyHookType `$type`): ?ReflectionMethod
public function getHooks(): array
public function getModifiers(): int
public function getName(): string
public function getRawValue(object `$object`): mixed
public function getSettableType(): ?ReflectionType
public function getType(): ?ReflectionType
public function getValue(?object `$object` = `null`): mixed
public function hasDefaultValue(): bool
public function hasHook(PropertyHookType `$type`): bool
public function hasHooks(): bool
public function hasType(): bool
public function isAbstract(): bool
public function isDefault(): bool
public function isDynamic(): bool
public function isFinal(): bool
public function isInitialized(?object `$object` = `null`): bool
public function isLazy(object `$object`): bool
public function isPrivate(): bool
public function isPrivateSet(): bool
public function isPromoted(): bool
public function isProtected(): bool
public function isProtectedSet(): bool
public function isPublic(): bool
public function isReadOnly(): bool
public function isStatic(): bool
public function isVirtual(): bool
#[\Deprecated]
public function setAccessible(bool `$accessible`): void
public function setRawValue(object `$object`, mixed `$value`): void
public function setRawValueWithoutLazyInitialization(object `$object`, mixed `$value`): void
public function setValue(?object `$object`, mixed `$value`): void
public function skipLazyInitialization(object `$object`): void
public function __toString(): string
}

## 属性

name

  属性名。只读，在尝试赋值的时候抛出 ReflectionException。

class

  定义的属性所在的类。只读，在尝试赋值的时候抛出 ReflectionException。

## 预定义常量

## ReflectionProperty 修饰符

`ReflectionProperty::IS_STATIC` int

  表示 static 属性。在 PHP 7.4.0 之前，值为 `1`。

`ReflectionProperty::IS_READONLY` int

  表示 readonly 属性。自 PHP 8.1.0 起可用。

`ReflectionProperty::IS_PUBLIC` int

  表示 public 属性。在 PHP 7.4.0 之前，值为 `256`。

`ReflectionProperty::IS_PROTECTED` int

  表示 protected 属性。在 PHP 7.4.0 之前，值为 `512`。

`ReflectionProperty::IS_PRIVATE` int

  表示 private 属性。在 PHP 7.4.0 之前，值为 `1024`。

`ReflectionProperty::IS_ABSTRACT` int
  表示属性是 abstract。自 PHP 8.4.0 起可用。
`ReflectionProperty::IS_PROTECTED_SET` int
  自 PHP 8.4.0 起可用。
`ReflectionProperty::IS_PRIVATE_SET` int
  自 PHP 8.4.0 起可用。
`ReflectionProperty::IS_VIRTUAL` int
  自 PHP 8.4.0 起可用。
`ReflectionProperty::IS_FINAL` int
  表示属性是 final。自 PHP 8.4.0 起可用。

> 注意:

> 这些常量的值可能会在不同 PHP 版本间发生更改。建议始终使用常量而不直接依赖值。

## 更新日志

版本 | 说明
--- | ---
8.4.0 | 所有类常量现已类型化。
8.4.0 | 新增 `ReflectionProperty::IS_VIRTUAL`、`ReflectionProperty::IS_PRIVATE_SET`、`ReflectionProperty::IS_PROTECTED_SET`、`ReflectionProperty::IS_ABSTRACT`, 和 `ReflectionProperty::IS_FINAL`。
8.0.0 | 已移除 ReflectionProperty::export()。

## 目录

- ReflectionProperty::__clone — Clone
- ReflectionProperty::__construct — Construct a ReflectionProperty object
- ReflectionProperty::export — Export
- ReflectionProperty::getAttributes — Gets Attributes
- ReflectionProperty::getDeclaringClass — Gets declaring class
- ReflectionProperty::getDefaultValue — Returns the default value declared for a property
- ReflectionProperty::getDocComment — Gets the property doc comment
- ReflectionProperty::getHook — Returns a reflection object for a specified hook
- ReflectionProperty::getHooks — Returns an array of all hooks on this property
- ReflectionProperty::getModifiers — Gets the property modifiers
- ReflectionProperty::getName — Gets property name
- ReflectionProperty::getRawValue — Returns the value of a property, bypassing a get hook if defined
- ReflectionProperty::getSettableType — Returns the parameter type of a setter hook
- ReflectionProperty::getType — Gets a property's type
- ReflectionProperty::getValue — Gets value
- ReflectionProperty::hasDefaultValue — Checks if property has a default value declared
- ReflectionProperty::hasHook — Returns whether the property has a given hook defined
- ReflectionProperty::hasHooks — Returns whether the property has any hooks defined
- ReflectionProperty::hasType — Checks if property has a type
- ReflectionProperty::isAbstract — Determines if a property is abstract
- ReflectionProperty::isDefault — Checks if property is a default property
- ReflectionProperty::isDynamic — Checks if property is a dynamic property
- ReflectionProperty::isFinal — Determines if this property is final or not
- ReflectionProperty::isInitialized — Checks whether a property is initialized
- ReflectionProperty::isLazy — Checks whether a property is lazy
- ReflectionProperty::isPrivate — Checks if property is private
- ReflectionProperty::isPrivateSet — Checks if property is private for writing
- ReflectionProperty::isPromoted — Checks if property is promoted
- ReflectionProperty::isProtected — Checks if property is protected
- ReflectionProperty::isProtectedSet — Checks whether the property is protected for writing
- ReflectionProperty::isPublic — Checks if property is public
- ReflectionProperty::isReadOnly — 检查属性是否为只读
- ReflectionProperty::isStatic — Checks if property is static
- ReflectionProperty::isVirtual — Determines if a property is virtual
- ReflectionProperty::setAccessible — Set property accessibility
- ReflectionProperty::setRawValue — Sets the value of a property, bypassing a set hook if defined
- ReflectionProperty::setRawValueWithoutLazyInitialization — Set raw property value without triggering lazy initialization
- ReflectionProperty::setValue — Set property value
- ReflectionProperty::skipLazyInitialization — Marks property as non-lazy
- ReflectionProperty::__toString — To string

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open