gotohayato.com

月(ダークモード)
太陽(ライトモード)

PHP の Multiple access type modifiers are not allowed というエラーの対処方法

PHP

PHP の小ネタです。 PHP のコードを実行しようとすると次のようなメッセージの Fatal error が出て処理が止まることがあります。

Multiple access type modifiers are not allowed

これはクラスのメソッドやプロパティのアクセス修飾子( public / protected / private )を複数重ねて付けていると発生するエラーです。 エラーはクラス定義のパース時(いわゆる compile time )に上がります。

例えば次のコードを実行するとこのエラーを再現することができます(動作確認には PHP 7.3 を使用しました)。

class WanWan {
public protected function bark(): string
{
return 'Bow wow!';
}
}

public protected が重複していて明らかにおかしいですね。

解決方法は単純にアクセス修飾子を正しくつけることです。

- public protected function bark(): string
+ public function bark(): string

これまでに PHP を数万行ほど書いていますが、このエラーは初めて目撃したのでメモとして残しておきます……


後藤隼人 (ごとうはやと)

ウェブ制作・開発やマーケティング、プロジェクト支援などをしています。

GitHubPython

お知らせ

大阪大学医学部附属病院 高度救命救急センターさんが現在クラウドファンディングのプロジェクトをされています(後藤も少しだけ寄附させていただきました)。
© 2021 gotohayato.com
サイトについてタグアーカイブメッセージを送る