PHPのstaticメソッドの呼び出しに関して
オブジェクト指向を勉強しており、staticメソッドの呼び出し方に関して違いが分からず悩んでおります。
呼び出したいメソッド
PHP
1class Hoge 2{ 3 public function method($string) 4 { 5 echo $string; 6 } 7}
上記メソッドにはstaticが指定されていませんが、下記の通り、staticメソッドを呼び出す方法でもエラーになりません。
PHP
1Hoge::method('string');
また、よく解説にある通り、インスタンス化してメソッドを呼び出すことでもエラーになりません。
PHP
1$hoge = new Hoge; 2$hoge->method('string');
以上から質問となるのですが、メソッドにstaticという表現(宣言)はあってもなかっても問題ないのでしょうか? static変数とプロパティーの違いは理解できたのですが、根本的な問題として、staticメソッドと通常メソッドの違いが分からず悩んでおります。