ReflectionAttribute::newInstance

(PHP 8)

ReflectionAttribute::newInstance — Instantiates the attribute class represented by this ReflectionAttribute class and arguments

Description

public function ReflectionAttribute::newInstance(): object

Instantiates the attribute class represented by this ReflectionAttribute class and arguments.

Parameters

This function has no parameters.

Return Values

New instance of the attribute.

Errors/Exceptions

Throws an Error if the attribute is applied to a target it cannot be used on. For internal attributes, this happens here instead of at compile time when the declaration uses #[\DelayedTargetValidation].

Changelog

Version Description
8.5.0 Now throws an Error for an internal attribute applied to an invalid target when the target validation was delayed with #[\DelayedTargetValidation].
+add a note

User Contributed Notes 1 note

up
-1
baptiste at pillot dot fr
3 years 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