PHP 8.1.15 Released!

ReflectionAttribute::newInstance

(PHP 8)

ReflectionAttribute::newInstance实例化由 ReflectionAttribute 类和参数表示的属性类

说明

public ReflectionAttribute::newInstance(): object

实例化由 ReflectionAttribute 类和参数表示的属性类。

参数

此函数没有参数。

返回值

属性的新实例。

add a note

User Contributed Notes 2 notes

up
0
baptiste at pillot dot fr
4 days 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
up
0
baptiste at pillot dot fr
4 days 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
To Top