【PHP】どんなときにstaticを使うといいのか
はじめに
以下は使用頻度が少ないので今回のスコープ外とします。
また、私の主観もけっこう入っているので最終的には各自できちんと判断してください。
個人的にはあまりstaticを使わない方の派閥だと認識しています。
staticプロパティ
インスタンス単位ではなく、クラス単位で値を保持したいときに使います。
単に定数を保持したいなら const を使います。
staticメソッド
以下全てを満たす処理に使います。典型的な利用例としてはユーティリティ系の処理を定義するときですね。
$this が不要
インスタンスではなくクラスに属させるのが意味的に正しい
テストのしづらさを上回るメリットがある
安定している
4つ目の「安定している」がけっこう重要です。
static メソッドはその性質上 new せずに呼び出せるので、色々なところから突然呼び出される可能性があります。
そんなメソッドが不安定だったらまずいですよね。
まとめ
staticプロパティはクラス単位で値を保持したいときに使う
staticメソッドは以下を全て満たす処理に使う
$this が不要
インスタンスではなくクラスに属させるのが意味的に正しい
テストのしづらさを上回るメリットがある
安定している
さいごに
地味に迷うテーマだと思うので簡単に個人的な方針をまとめてみました。
少しでもあなたの設計に役立てられたら嬉しいです。
最後までご覧いただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?