PHP.mk документација

ReflectionProperty

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

class.reflectionproperty.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека class.reflectionproperty.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
ReflectionProperty

Референца за `class.reflectionproperty.php` со подобрена типографија и навигација.

class.reflectionproperty.php

Класата ReflectionProperty

класата mysqli_driver

Вовед

На ReflectionProperty класата известува информации за својствата на класата.

Синопсис на класата

class ReflectionProperty implements Рефлектор {
/* Константи */
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 getDefaultValue(): mixed
public function getDocComment(): string|false
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
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
), не се совпаѓа.
ReflectionProperty::IS_PRIVATE_SET int
), не се совпаѓа.
ReflectionProperty::IS_VIRTUAL int
), не се совпаѓа.
ReflectionProperty::IS_FINAL int
Индицира дека својството е final. Достапно од PHP 8.4.0.

Забелешка:

Вредностите на овие константи може да се променат помеѓу верзиите на PHP. Се препорачува секогаш да ги користите константите и да не се потпирате директно на вредностите.

Дневник на промени

Верзија = NULL
8.4.0 Константите на класата сега се типизирани.
8.4.0 Додадено ReflectionProperty::IS_VIRTUAL, ReflectionProperty::IS_PRIVATE_SET, ReflectionProperty::IS_PROTECTED_SET, ReflectionProperty::IS_ABSTRACTПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во ReflectionProperty::IS_FINAL.
8.0.0 (PHP 5, PHP 7, PHP 8) Враќа ODBC резултат објект ако SQL командата беше успешно извршена, или

Содржина

Белешки од корисници 1 белешка

расмус на mindplay точка дк
пред 15 години
I think a more accurate explanation is this:

The Reflection classes are designed to reflect upon the source code of an application, not on any runtime information.

I think you misunderstand the ReflectionProperty constructor in your example above. The fact that it accepts an object as argument is just a convenience feature - you are actually inspecting the class of that object, not the object itself, so it's basically equivalent to:

<?php

// works fine 
$Reflection = new ReflectionProperty(get_class($a), 'a');

// throws exception 
$Reflection = new ReflectionProperty(get_class($a), 'foo');

?>

Getting the class of the object you're passing in is implied, since inspecting a defined property is the purpose of this class.

In your example, $a->foo is a dynamic member - it is not defined as a member of class, so there is no defining class reference, line number, default value, etc. - which means, there is nothing to reflect upon.

Clearly this very useful library could use some real documentation...
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.