PHP: Hypertext Preprocessor (original) (raw)

ReflectionClassConstant::getAttributes

(PHP 8)

ReflectionClassConstant::getAttributes — Gets Attributes

Description

public ReflectionClassConstant::getAttributes(?string $name = [null](reserved.constants.php#constant.null), int $flags = 0): array

Parameters

name

Filter the results to include only ReflectionAttribute instances for attributes matching this class name.

flags

Flags for determining how to filter the results, if name is provided.

Default is 0 which will only return results for attributes that are of the class name.

The only other option available, is to use [ReflectionAttribute::IS_INSTANCEOF](class.reflectionattribute.php#reflectionattribute.constants.is-instanceof), which will instead use instanceof for filtering.

Examples

Example #1 Basic usage

`<?php
#[Attribute]
class Fruit {
}

#[

Attribute]
class Red {
}

class

Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}$classConstant = new ReflectionClassConstant('Basket', 'APPLE'); attributes=attributes = attributes=classConstant->getAttributes();
print_r(array_map(fn($attribute) => attribute−>getName(),attribute->getName(), attribute>getName(),attributes));
?>`

The above example will output:

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

Example #2 Filtering results by class name

`<?php
#[Attribute]
class Fruit {
}

#[

Attribute]
class Red {
}

class

Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}$classConstant = new ReflectionClassConstant('Basket', 'APPLE'); attributes=attributes = attributes=classConstant->getAttributes('Fruit');
print_r(array_map(fn($attribute) => attribute−>getName(),attribute->getName(), attribute>getName(),attributes));
?>`

The above example will output:

Example #3 Filtering results by class name, with inheritance

`<?php
interface Color {
}

#[

Attribute]
class Fruit {
}

#[

Attribute]
class Red implements Color {
}

class

Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}$classConstant = new ReflectionClassConstant('Basket', 'APPLE'); attributes=attributes = attributes=classConstant->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => attribute−>getName(),attribute->getName(), attribute>getName(),attributes));
?>`

The above example will output:

See Also