PHP 8.4.0 RC4 available for testing

ReflectionAttribute::newInstance

(PHP 8)

ReflectionAttribute::newInstanceInstancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments

Description

public ReflectionAttribute::newInstance(): object

Instancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La nouvelle instance de l'attribut.

add a note

User Contributed Notes 2 notes

up
2
baptiste at pillot dot fr
1 year ago
Calling ReflectionAttribute::newInstance() using an attribute name that does not have a corresponding class will result in an error.

Example :

<?php
#[FakeAttribute]
class
Test {}

try {
(new
ReflectionClass(Test::class))->getAttributes()[0]->newInstance();
}
catch (
Error $error) {
echo
'Throwed error ' . get_class($error) . ' with message : ' . $error->getMessage();
}
?>

This will output :

Throwed error Error with message : Attribute class "FakeAttribute" not found
up
2
baptiste at pillot dot fr
1 year ago
Calling ReflectionAttribute::newInstance() using an attribute name that has a matching class without #[Attribute] will result in an error.

Example :

<?php
class FakeAttribute {}

#[
FakeAttribute]
class
Test {}

try {
(new
ReflectionClass(Test::class))->getAttributes()[0]->newInstance();
}
catch (
Error $error) {
echo
'Throwed error ' . get_class($error) . ' with message : ' . $error->getMessage();
}
?>

This will output :

Throwed error Error with message : Attempting to use non-attribute class "FakeAttribute" as attribute
To Top