O atributo AllowDynamicProperties

(PHP 8 >= 8.2.0)

Introdução

Este atributo é usado para marcar classes que permitem propriedades dinâmicas.

Nota: Embora os atributos em si não sejam herdados, o efeito do atributo AllowDynamicProperties é herdado. Classes filhas de uma classe marcada com este atributo também permitirão propriedades dinâmicas, mesmo se elas não declararem explicitamente o atributo.

Resumo da classe

#[\Attribute]
final class AllowDynamicProperties {
/* Métodos */
public __construct()
}

Exemplos

As propriedades dinâmicas foram descontinuadas a partir do PHP 8.2.0, portanto, usá-las sem marcar a classe com este atributo emitirá um aviso de descontinuação.

Exemplo #1 AllowDynamicProperties com propriedade não existente

<?php
class DefaultBehaviour { }

#[
\AllowDynamicProperties]
class
ClassAllowsDynamicProperties { }

$o1 = new DefaultBehaviour();
$o2 = new ClassAllowsDynamicProperties();

$o1->nonExistingProp = true;
$o2->nonExistingProp = true;
?>

Saída do exemplo acima no PHP 8.2:

Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 10

Exemplo #2 AllowDynamicProperties com propriedade não existente em classe herdada

<?php
class DefaultBehaviour { }

#[
\AllowDynamicProperties]
class
ClassAllowsDynamicProperties { }

class
InheritedClassAllowsDynamicProperties extends ClassAllowsDynamicProperties { }

$o1 = new DefaultBehaviour();
$o2 = new InheritedClassAllowsDynamicProperties();

$o1->nonExistingProp = true;
$o2->nonExistingProp = true;
?>

Saída do exemplo acima no PHP 8.2:

Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 12

Índice

adicionar nota

Notas de Usuários

Não há notas de usuários para esta página.
To Top