PHP

【PHP】「should not be called statically」エラーが出た時の原因と対処法!

あきぞらです。

PHPで開発をしていて、

Non-static method Hoge::getHogeName() should not be called statically

というエラーに遭遇しました。

今回はこのエラーと解消方法を紹介したいと思います!

should not be called statically エラーの原因

「should not be called statically」エラーの原因は、

staticでない関数を「static 」に呼び出してしまったことにあります。

では、「static」な関数とは何なのでしょうか?

staticな関数とは?

staticな関数とは、

以下のようなに定義されたメソッドをいいます。

クラスをインスタンス化しなくても使え、

Hoge::getHogeName()」のような記載で使うことができます。

class Hoge {
  public static function getHogeName() {
    return 'hoge';
  }
}

今回のエラーと原因

今回は、staticな関数を呼ぶ時のように、

Hoge::getHogeName()

と関数を呼んでいたにもかかわらず、

static」を付けていなかったことが原因でした。

class Hoge {
  // static をつけていない
  public function getHogeName() {
    return 'hoge';
  }
}

上記のようにメソッドを定義していて、

かつ以下のように呼び出すと、メッセージが表示されます。

Non-static method Hoge::getHogeName() should not be called statically

気をつけましょう!

-PHP
-

Copyright© あきぞらてっく , 2024 All Rights Reserved Powered by AFFINGER5.