PHP
クラス
継承
static

クラスとは?クラスのイメージを掴もう!


クラス

クラスは次の要素を持つことができます。


  • プロパティ:変数

  • メソッド:関数

インスタンスを生成することで、これらの値をクラスの外から呼び出すことができます。

インスタンスは、

インスタンス名 = new クラス名(引数);

と記述すると生成できます。

また、そのプロパティやメソッドは、

インスタンス名->プロパティorメソッド;

と記述すると呼び出すことができます。


クラスって何?

「クラスのイメージがいまいちわからない」

そんな方はクラスを「車」に例えて見るといいかもしれません。

クラスにとってのプロパティとは、車における部品のようなものです。

車のタイヤやエンジンが車のプロパティにあたります。

つまりクラスを構成する部品がプロパティなのです。

一方、メソッドは車の機能のようなものです。

これを車はアクセルを踏むと走り出します。

この走るという機能が車というクラスのメソッドなのです。


継承とは?

作成したクラスは次のように記述することで他のクラスで継承することができます。

Class 子クラス extends 親クラス(仮引数){・・・}

親クラスを継承すると、子クラスは親クラスのプロパティやメソッドを記述しなくても、持つことができます。

分かりにくいので、この継承も「車」に例えてみましょう。

「車」と言っても、様々な種類がありますよね。

例えば、トラックは「車」としての共通の機能や部品だけでなく、乗用車にはない荷台を持っています。

クラス「車」を継承すると、新しくプロパティ「荷台」を記述するだけで、トラックというクラスを定義することができるのです。


staticとは?

PHPではクラスの中でstatic変数や関数を、用いることがあります。この「static」とは何なのでしょう。

「static」を日本語にすると「静的な」という意味になります。静的というのは、変化しないということです。

PHPでは代入不可能な変数などを定義するときにfinalを使いましたが、それとは異なります。

普通のプロパティはインスタンス毎に違う変数として扱われます。しかし、static変数は、全てのインスタンスに対して1つの変数です。

そのため、呼び出し方法も通常とは異なります。

staticで定義されたプロパティやメソッドは

(クラス名)::(プロパティまたはメソッド)

で呼び出すことができます。

インスタンス毎に違う値をとるわけではないので、::の左側に来るのがインスタンス名でなくクラス名であることに注意しましょう。