【初心者向け】PHPのclassとは?基本的な書き方から呼び出し方などを解説!

こんにちは、大学院でIT系の研究を専攻している、ひらりんです。

PHPはサーバーサイドで動く言語で、世界中の多くのWebサイトがPHPによって記述されています。一括してコンパイルするのではなく、実行時に一行ずつコンパイルされることから、随時コードを確認できるのも、初心者が取り掛かりやすい理由のひとつです。

本記事では、PHPのclassについて説明します。PHPだけでなく、プログラミング学習を始めて間もないときは、クラスについてなんとなくわかるけど、実際のプログラムで使うのかわからなかったりしますよね。

PHPのクラスについて基本的な取り扱い方を説明し、一通り自分でプログラムを組めるようになるので、PHPの学習を始めた方やプログラムを書く予定の人はぜひ読んでみてください!

クラスとは?

そもそも、プログラムにおける”クラス”とは何でしょうか。クラスの説明に入る前に、簡単に「オブジェクト指向」について説明します。

この記事を読んでいる方は、一度は”オブジェクト”という言葉を聞いたことがあるのではないでしょうか。このオブジェクト指向とは、実装したい機能ごとにプログラムをまとめて作成することを意味します。プログラム内で実施したいことを、ただ順番通りに書くのでなく、「計算するところ」や「結果を表示するところ」と処理内容ごとにまとめる書き方です。

そこで登場するのが、クラスです。クラスは、メソッドとプロパティによって成り立ち、設計図と呼ばれたりしています。このクラスによって、インスタンスが作られます。いきなり、専門用語がでてきたので、それらの言葉の説明からしていきます!

メソッド・プロパティ・インスタンスとは?

では、PHPのクラス作成に必要なメソッドとプロパティ、クラスをもとに作成されるインスタンスとは何なのでしょうか。

メソッド

クラス内に書かれている関数のこと

メソッドとは、クラス内で定義されている関数のことを指します。言い換えると、そのクラスによって、どんなことを実施させたいかという機能そのものです。

プロパティ

クラス内で定義されている変数のこと

プロパティは、クラス内で定義されている変数のことを指します。言い換えると、そのクラスによって準備された、値やデータのことをです。

インスタンス

クラスによって作られたオブジェクトのこと

インスタンスは、クラスという設計図によって作られたオブジェクトのことを指します。つまり、こちらの注文内容に即して、設計図通りに作られた製品ということになります。


オブジェクト指向について理解を深めたい方は、以下の記事などを参考にしてください。

参考 【初心者向け】PHPのオブジェクト指向を解説!ウェブカツ ブログ

PHPのclassについて

 

それでは、PHPのクラスについての操作方法について見てみましょう。まずは、PHPでのクラスの定義方法について説明します。

定義方法

クラスの定義方法は、このようになります。classの直後に、クラス名を記述します。このクラスが設計図名です。では、実際のプログラムを例として見てみましょう。

実践プログラム例

このように、クラスは定義します。簡単に中身を見ていきましょう。2行目で、Humanクラスを定義しています。3,4行目では、プロパティとなる変数$nameと$ageを宣言しています。それぞれのプロパティの前に書かれているpublicについては、後ほど説明します。

6行目では、メソッドとなるInfomationメソッドを定義しています。このメソッド内では、プロパティの変数によって表示内容が変わるようなメソッドとなっています。nameとageの前にある$thisは、擬似変数thisと呼ばれるもので、クラス内でプロパティやメソッドにアクセスする際に使います。

このように、プロパティとメソッドを記述することで、クラスを作成することができます。クラスは、実装したい機能とデータが一緒が組み合わせになっているオブジェクト指向の一部ということが分かっていただけたのではないでしょうか。

次は、先ほど登場した”public”などのアクセス修飾子について説明します。

アクセス修飾子

アクセス修飾子とは、クラス内で変数やメソッドが重複しないように、アクセスできる範囲を限定する機能です。主なアクセス修飾子として、public・protected・privateがあります。それぞれについて簡単に見てみましょう。

public

クラス内外関係なく、アクセス可能です。

protected

クラス内と継承先のクラスから、アクセス可能です。

private

クラス内のみ、アクセス可能です。


アクセス修飾子を使い分けることで、クラス内でのみデータを公開したり範囲を限定できるため、情報が漏れにくくなり、外部から呼び出されたくないメソッドを守ったりすることができます。アクセス修飾子について、詳しく学習したい人は、以下のPHP公式サイトを参考にしてください。

参考 アクセス権php公式サイト

呼び出し方

続いて、クラスの呼び出し方について説明します。クラスの呼び出しとは、クラスという設計図を用いてインスタンスを作成するということになります。では、基本構文から見てみましょう。

インスタンスの生成には、new演算子を用います。new演算子を用いてクラスを呼び出し、インスタンスに格納するという流れです。また、クラス内のプロパティやメソッドにアクセスしたい場合は、このインスタンス名を用いて次のように記述します。

このように、クラス内のプロパティやメソッドにアクセスする際は、インスタンス名のあとに「->」と書き、アクセスしたいプロパティ名やメソッド名を記述するだけで、アクセスすることができます。

実際に、先ほど作成したHumanクラスを呼び出すプログラムを見てみましょう。

2,3行目で、Humanクラスを呼び出してインスタンスの$PersonAと$PersonBを作成しました。6,7行目では、インスタンス$PersonAについて、クラス内に記述されていたのプロパティ$nameと$ageを定義しています。10,11行目ではインスタンス$PersonBについて同様のことを行っています。

それぞれのインスタンスによって、プロパティが異なるため、14,15行目に書かれているHumanクラス内のInformationメソッドによる呼び出しの結果も変わってきます。

クラスについては、アクセス修飾子や変数に対する理解の他にも、継承などいろいろな機能が備わっていて、理解を深めれば深めるほど、精度が高いプログラムになることでしょう。

まとめ

いかがでしたでしょうか?今回は、PHPのclassについて説明しました。

PHPのクラスは、プログラムが煩雑になったり、フレームワークを使う際には欠かせない概念なので、ぜひ理解を深めて、Webサービス作成やシステム構築に活かしてください。