静的・動的というよりは、クラスメソッド
、インスタンスメソッド
という呼び方で覚えた方がイメージがつきやすいかと思います。(self::hoge()
と呼び出す方がクラスメソッドです)
その呼び方の通り、
・クラスメソッド:インスタンス化せずにクラスで汎用に使えるメソッド
・インスタンスメソッド:各インスタンスに紐づいたメソッド
となります。
オブジェクト指向にのっとってプログラムを作る場合は、ほとんどのケースではインスタンスメソッドを使用するかと思いますので、クラスメソッドの使い方の一例を紹介しておきます。
・ファクトリーメソッド
そのクラスのインスタンスを生成するメソッドです。(例えばシングルトンのインスタンス作成等)
インスタンスを生成するので、インスタンスメソッドとして定義することは出来ないため、クラスメソッドで用意するのが一般的です。
・ロガーメソッド
ログ出力用のメソッド等は、わざわざインスタンスを作成するまででも無いので、私はロガーはクラスメソッドで作成します。
こちらはフレームワークによって実装方法が異なっているので、使用されているフレームワークに合わせれば良いかと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。