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 を数万行ほど書いていますが、このエラーは初めて目撃したのでメモとして残しておきます……


後藤隼人
ウェブサイト制作・ウェブアプリ開発やマーケティングをしています。
GitHub

お知らせ

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