【PHP入門】PHPのクラス変数とインスタンス変数

オブジェクト指向言語ではインスタンスが持つ「インスタンス変数」のほか、同じクラスに属するインスタンス間で共有する「クラス変数」があります。

このインスタンス変数とクラス変数の違いと、使い分けの仕方について説明します。

クラス変数の書式・使い方

static修飾子をつけることで、クラス変数となります。クラス変数はクラス名を指定するため、newでインスタンスを作成しなくても利用可能です。

クラス変数へのアクセス

グローバル変数のように複数のPHPファイルのどこからでも、クラス名さえ指定すれば使用可能です。

インスタンス変数の書式・使い方

インスタンス変数は、インスタンスから呼び出されます。同じクラスであっても、インスタンスが異なれば別変数になります。

インスタンス変数へのアクセス

クラス変数とインスタンス変数の違い

つまり、同じクラスから作成された複数のインスタンスで、

  • クラス変数:インスタンス間で共通の変数
  • インスタンス変数:インスタンス毎に異なる変数

となります。

クラスに属するのがクラス変数、インスタンスに属するのがインスタンス変数と覚えれば良いでしょう。

サンプルコード

クラス変数のサンプルコード

実行結果

インスタンス変数のサンプルコード

実行結果

まとめ

今回はクラス変数とインスタンス変数の使用例を紹介しました。

2つのうちインスタンス変数を使うことのほうが多いのですが、どちらを使うべきかを一概に述べることはできません。コードの設計に合わせて適切なものを使ってください。


イベント