PHP Conference Fukuoka 2025

O atributo Override

(PHP 8 >= 8.3.0)

Introdução

Este atributo é usado para indicar que um método ou uma propriedade se destina a substituir um método ou uma propriedade de uma classe superior ou que ele/ela implementa um método ou propriedade definido(a) em uma interface.

Se nenhum método ou propriedade com o mesmo nome existir em uma classe superior ou em uma interface implementada, um erro será emitido no momento da compilação.

O atributo não pode ser usado no método __construct(), que é isento de verificação de assinaturas.

Resumo da classe

final class Override {
/* Métodos */
public __construct()
}

Registro de Alterações

Versão Descrição
8.5.0 Override pode ser aplicada a propriedades.

Exemplos

Exemplo #1 Uso com métodos

<?php

class Base {
protected function
foo(): void {}
}

final class
Extended extends Base {
#[
\Override]
protected function
boo(): void {}
}

?>

A saída do exemplo acima no PHP 8.3 é semelhante a:

Fatal error: Extended::boo() has #[\Override] attribute, but no matching parent method exists

Exemplo #2 Uso com propriedades

<?php

class Base {
protected
string $foo;
}

final class
Extended extends Base {
#[
\Override]
protected
string $boo;
}

?>

A saída do exemplo acima no PHP 8.5 é semelhante a:

Fatal error: Extended::$boo has #[\Override] attribute, but no matching parent property exists

Índice

adicionar nota

Notas de Usuários

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