PHP 8.4.0 RC4 available for testing

ReflectionAttribute::newInstance

(PHP 8)

ReflectionAttribute::newInstanceInstancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos

Descrição

public ReflectionAttribute::newInstance(): object

IInstancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nova instância do atributo.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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