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

ReflectionClass::getAttributes

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

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

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

reflectionclass.getattributes.php

ReflectionClass::getAttributes

(PHP 8)

ReflectionClass::getAttributesДобива атрибути

= NULL

public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array

Враќа сите атрибути декларирани на оваа класа како низа од ReflectionAttribute.

Параметри

name

Филтрирај ги резултатите за да вклучиш само ReflectionAttribute инстанци за атрибути што одговараат на името на оваа класа.

flags

Знаменца за одредување како да се филтрираат резултатите, ако name е обезбедено.

- поминете ги и вредноста и клучот како аргументи до 0 што ќе врати само резултати за атрибути што се од класата name.

единствената друга достапна опција е да се користи ReflectionAttribute::IS_INSTANCEOF, што наместо тоа ќе користи instanceof за филтрирање.

Вратени вредности

Низа од атрибути, како ReflectionAttribute object.

Примери

Пример #1 Основна употреба

<?php
#[Attribute]
class
Fruit {
}

#[
Attribute]
class
Red {
}

#[
Fruit]
#[
Red]
class
Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Array
(
    [0] => Fruit
    [1] => Red
)

Пример #2 Филтрирање резултати по име на класа

<?php
#[Attribute]
class
Fruit {
}

#[
Attribute]
class
Red {
}

#[
Fruit]
#[
Red]
class
Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Array
(
    [0] => Fruit
)

Пример #3 Филтрирање резултати по име на класа, со наследување

<?php
interface Color {
}

#[
Attribute]
class
Fruit {
}

#[
Attribute]
class
Red implements Color {
}

#[
Fruit]
#[
Red]
class
Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes(Color::class, ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Array
(
    [0] => Red
)

Види Исто така

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

sandrenyl at gmail dot com
пред 4 години
When using the method getAttributes() to fetch attributes based on a parent class, the proper flag constant is ReflectionAttribute::IS_INSTANCEOF (which equals 2 as mentionned by sergiolibe).

<?php
$reflectionClass->getAttributes(SomeParentAttribute::class, ReflectionAttribute::IS_INSTANCEOF);
?>
sergiolibe на gmail точка ком
пред 4 години
When using getAttributes() with specific attribute class and flags, flag 0 will return just matching attributes with specified class, and 2 will return matching attributes with specified class and children of that class:
<?php
    #[Attribute(\Attribute::TARGET_CLASS)]
    class SomeAttribute {}

    #[Attribute(\Attribute::TARGET_CLASS)]
    class ChildAttribute extends SomeAttribute {}

    #[SomeAttribute]
    #[SomeChildAttribute]
    class SomeClass {}

    $rc = new ReflectionClass(SomeClass::class);

    $r_atts = $rc->getAttributes(SomeAttribute::class, 0); // 0 is default, just given class
    echo json_encode(array_map(fn(ReflectionAttribute $r_att) => $r_att->getName(), $r_atts)), PHP_EOL;

    $r_atts = $rc->getAttributes(SomeAttribute::class, 2); // given class and children classes
    echo json_encode(array_map(fn(ReflectionAttribute $r_att) => $r_att->getName(), $r_atts)), PHP_EOL;
?>

output:
["SomeAttribute"]
["SomeAttribute","ChildAttribute"]
На оваа страница

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

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

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

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

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