PHP 8.5.0 Beta 1 available for testing

Override アトリビュート

(PHP 8 >= 8.3.0)

はじめに

このアトリビュートは、 親クラスのメソッドをオーバーライドしている意図があるか、 インターフェイスで定義されたメソッドを実装していることを示します。

親クラス中に同じ名前のメソッドが存在しなかったり、 実装されているインターフェイスがない場合は、 コンパイル時にエラーが発生します。

シグネチャのチェックを回避できてしまうため、 このアトリビュートは __construct() に対しては使えません。

クラス概要

final class Override {
/* メソッド */
public __construct()
}

<?php

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

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

?>

上の例の PHP 8.3 での出力は、たとえば以下のようになります。:

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

目次

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top