見出し画像

【PHP】どんなときにstaticを使うといいのか


はじめに

以下は使用頻度が少ないので今回のスコープ外とします。

また、私の主観もけっこう入っているので最終的には各自できちんと判断してください。
個人的にはあまりstaticを使わない方の派閥だと認識しています。

staticプロパティ

インスタンス単位ではなく、クラス単位で値を保持したいときに使います。

単に定数を保持したいなら const を使います。

staticメソッド

以下全てを満たす処理に使います。典型的な利用例としてはユーティリティ系の処理を定義するときですね。

  • $this が不要

  • インスタンスではなくクラスに属させるのが意味的に正しい

  • テストのしづらさを上回るメリットがある

  • 安定している

4つ目の「安定している」がけっこう重要です。

static メソッドはその性質上 new せずに呼び出せるので、色々なところから突然呼び出される可能性があります。
そんなメソッドが不安定だったらまずいですよね。

まとめ

  • staticプロパティはクラス単位で値を保持したいときに使う

  • staticメソッドは以下を全て満たす処理に使う

    • $this が不要

    • インスタンスではなくクラスに属させるのが意味的に正しい

    • テストのしづらさを上回るメリットがある

    • 安定している

さいごに

地味に迷うテーマだと思うので簡単に個人的な方針をまとめてみました。
少しでもあなたの設計に役立てられたら嬉しいです。

最後までご覧いただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?