カテゴリ: PHP 更新日: 2026/01/08

PHPのstaticメソッド・プロパティの使い方を初心者向けにやさしく解説!

PHP の static メソッド・プロパティの使い方
PHP の static メソッド・プロパティの使い方

先生と生徒の会話形式で理解しよう

生徒

「PHPのstaticメソッドとかプロパティってよく聞くけど、どういうときに使うんですか?」

先生

「とても大事なポイントですね!staticは、クラスから直接呼び出す特別な機能なんですよ。」

生徒

「普通のメソッドとは何が違うんですか?」

先生

「それでは、PHPのstaticメソッドとプロパティについて、基礎から丁寧に見ていきましょう!」

-

1. PHPのstaticとは?初心者でもわかる基本の意味

1. PHPのstaticとは?初心者でもわかる基本の意味
1. PHPのstaticとは?初心者でもわかる基本の意味

PHPにおけるstatic(スタティック)は、「そのクラスをわざわざ使わなくても、直接アクセスできる」便利な機能です。たとえば、電卓を使いたいときに、いちいち電卓を買わずに、壁に備え付けの計算機を押すイメージです。

通常、PHPのメソッド(関数)やプロパティ(変数)を使うには「インスタンス化(=newして使う)」が必要ですが、staticを使えばそれを省略できます。

2. staticメソッド・staticプロパティの基本構文

2. staticメソッド・staticプロパティの基本構文
2. staticメソッド・staticプロパティの基本構文

以下がPHPでのstaticの書き方です。


class Calculator {
    public static $rate = 1.1;

    public static function add($a, $b) {
        return $a + $b;
    }
}

このように、staticキーワードを使うことで、クラスの中にあるけれど、クラスを作らずに使える機能になります。

3. staticメソッド・プロパティの呼び出し方

3. staticメソッド・プロパティの呼び出し方
3. staticメソッド・プロパティの呼び出し方

staticなメソッドやプロパティは、次のようにクラス名から直接呼び出します。


echo Calculator::add(5, 3); // 8を出力
echo Calculator::$rate;     // 1.1を出力

ポイントは「::(ダブルコロン)」でクラスから直接アクセスすることです。この記号は「スコープ定義演算子」と呼ばれます。

4. staticを使うときの具体例(定数クラスとして活用)

4. staticを使うときの具体例(定数クラスとして活用)
4. staticを使うときの具体例(定数クラスとして活用)

よくある使い方としては、税率や設定値など「どこからでも同じ値を使いたい」ときにstaticプロパティを使います。


class Tax {
    public static $rate = 0.1;

    public static function withTax($price) {
        return $price * (1 + self::$rate);
    }
}

echo Tax::withTax(1000); // 1100 を出力

このように、どこでも使いたい定数や共通の処理をまとめておけるのがstaticの便利なところです。

-

5. selfと$thisの違いを知ろう

5. selfと$thisの違いを知ろう
5. selfと$thisの違いを知ろう

self$thisの違いも初心者がつまずきやすいポイントです。

  • $this:インスタンス(実体)を指します。普通のメソッドやプロパティに使います。
  • self:クラスそのものを指します。staticなものに使います。

staticの中では$thisは使えません。代わりにself::static::を使います。

6. staticの注意点!使いすぎに注意

6. staticの注意点!使いすぎに注意
6. staticの注意点!使いすぎに注意

staticは便利ですが、何でもかんでも使ってしまうと、コードが複雑になったり、他のプログラムと連携しづらくなったりします。

特にオブジェクト指向プログラミング(OOP)では、「状態を持たせたいとき」にはstaticではなく、インスタンスを使うのが基本です。

7. staticとconst(定数)の違いも覚えておこう

7. staticとconst(定数)の違いも覚えておこう
7. staticとconst(定数)の違いも覚えておこう

staticプロパティとconst(定数)は、似ていますが役割が違います。

  • static:値の変更ができる(publicなら外部からも変更可能)
  • const:一度決めたら変更できない

class Setting {
    const SITE_NAME = "MySite";
    public static $version = "1.0";
}

echo Setting::SITE_NAME; // "MySite"
echo Setting::$version;  // "1.0"

8. よくある初心者のつまずきポイント

8. よくある初心者のつまずきポイント
8. よくある初心者のつまずきポイント

初心者がstaticを使うときに間違いやすいポイントを紹介します。

  • プロパティに$をつけ忘れる:self::rateではなくself::$rate
  • $thisstaticの中で使ってしまう:static内では$thisは使えません
  • クラス名のタイプミス:呼び出すときは正確なクラス名を記述

9. staticを使った便利なユーティリティクラスの例

9. staticを使った便利なユーティリティクラスの例
9. staticを使った便利なユーティリティクラスの例

staticメソッドは「便利ツール集」のような使い方ができます。たとえば、日付フォーマットの関数などを1つにまとめておけば、毎回同じ処理を簡単に使いまわせます。


class DateHelper {
    public static function now() {
        return date("Y-m-d H:i:s");
    }
}

echo DateHelper::now(); // 現在日時が表示される

まとめ

まとめ
まとめ

PHPのstaticメソッド・プロパティをしっかり振り返ろう

この記事では、PHPの static メソッドと static プロパティについて、初心者向けに基礎から丁寧に解説してきました。 staticは、クラスをインスタンス化せずに直接使える仕組みであり、PHPで効率よく共通処理を書くために欠かせない機能です。 特に、計算処理や設定値、共通で使う便利な処理をまとめる場面では、staticの考え方を理解しているかどうかで、コードの書きやすさが大きく変わります。

通常のメソッドやプロパティは、new を使ってオブジェクトを作成しなければ利用できませんが、 staticを使うことで「クラスそのものが持っている機能」として直接呼び出せるようになります。 これにより、毎回オブジェクトを作る必要がなくなり、処理の意図も分かりやすくなります。

staticが向いている場面と向いていない場面

staticメソッドやstaticプロパティは、「どこから呼んでも同じ結果になる処理」や 「アプリ全体で共通して使う値」を扱うときにとても向いています。 たとえば、税率、バージョン情報、日付処理、文字列の変換などは、staticでまとめておくと管理がしやすくなります。

一方で、ユーザーごとに状態が変わる情報や、データを保持し続けたい処理にはstaticは向いていません。 そういった場合は、インスタンスを使って値を管理する方が安全で、オブジェクト指向らしい設計になります。 staticは便利ですが、使いすぎると処理の流れが見えにくくなるため、目的を意識して使うことが大切です。

staticとselfの関係を整理しよう

staticメソッドやプロパティの中では、$this は使えず、代わりに self:: を使う必要がありました。 これは、staticが「オブジェクト」ではなく「クラス」を対象としているからです。 初心者のうちは、この違いでエラーにつまずきやすいですが、 「インスタンスなら$this、クラスならself」と覚えておくと混乱しにくくなります。

復習用:staticを使ったシンプルなサンプル


<?php
class MessageHelper {
    public static function hello($name) {
        return $name . "さん、こんにちは";
    }
}

echo MessageHelper::hello("太郎");
?>

このように、staticメソッドを使えば、ちょっとした共通処理を簡単にまとめることができます。 クラス名から直接呼び出せるため、どこで使われている処理なのかも分かりやすくなります。

先生と生徒の振り返り会話

生徒

「staticって難しそうだと思っていましたけど、 クラスを作らなくても使える共通の機能なんだと分かって、だいぶイメージしやすくなりました。」

先生

「それは良い理解ですね。staticは、PHPでよく使われる便利な仕組みなので、 早めに慣れておくとコードを書くのが楽になりますよ。」

生徒

「全部staticにすれば楽なのかなと思っていましたけど、 使いどころを選ばないといけないんですね。」

先生

「その通りです。staticは便利ですが、状態を持たせたい場合はインスタンスを使う方が安全です。 目的に合わせて使い分けることが、PHP上達のポイントですよ。」

生徒

「これからPHPでクラスを書くときは、 staticにする理由を考えながら書いてみます!」

今回学んだstaticメソッドとstaticプロパティの知識は、 PHPのクラス設計やオブジェクト指向プログラミングを理解するうえで重要な基礎になります。 実際にコードを書きながら、少しずつ使いどころを体で覚えていきましょう。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
Python
Pythonの変数スコープとは?初心者でもわかるローカル変数とグローバル変数の違い
New2
Python
PythonのNoneとは?NoneTypeの使い方とnullとの違いをわかりやすく解説
New3
Python
Pythonで文字列の長さを取得する方法!len()の基本と応用
New4
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
Python
Pythonでファイルの更新日やサイズを取得する方法!初心者でもわかるos.stat()の使い方
No.3
Java&Spring記事人気No3
PHP
PHPでREST APIを作る方法を完全ガイド!初心者でもわかるAPI開発入門
No.4
Java&Spring記事人気No4
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.5
Java&Spring記事人気No5
PHP
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
No.6
Java&Spring記事人気No6
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
No.7
Java&Spring記事人気No7
Python
Pythonのコンストラクタ(__init__)の使い方を解説!初心者でもわかるオブジェクトの初期化
No.8
Java&Spring記事人気No8
Python
Pythonのクラスとは?初心者向けにわかるオブジェクト指向とインスタンス作成の基本
-
-