PHPはオブジェクト指向に対応しており、クラス(class)を作り、そこからオブジェクト(インスタンス)を生成し、利用することができます。
オブジェクト指向の中核であるクラスの作り方の基本を見ていきます。
クラスの文法
クラスを作成するには、以下のように書きます。
1 2 3 4 |
class クラス名 { クラスの内容 } |
クラス名を付け、その後にクラスの内容を書いていきます。クラスの内容とは、属性(プロパティ)と操作(メソッド)です。クラスの属性(プロパティ)とはクラス内に宣言する変数であり、以下のように書きます。
1 |
public $変数名; |
publicはアクセス権を指定しているものです。
クラス外からのアクセスが可能なpublic、クラス外からのアクセスができないprivate、そのクラスを継承したクラスからのみアクセス可能な protected の3種類があります。
クラスの操作(メソッド)とはクラス内に宣言する関数(function)であり、以下のように書きます。
1 2 |
public function 関数名(){ } |
メソッドにもアクセス権を付けることができます。付けない場合、publicになります。
クラス内でプロパティを使う(this)
例えば以下のようなクラスがあったとします。
1 2 3 4 5 6 7 8 |
class Man { public $name; public function show() { } } |
このとき、メソッドshowの中で自分のクラス内の$nameを表示したい場合、以下のように書きます。
1 2 3 |
public function show() { echo $this->name; } |
このようにクラス内変数を利用する場合、 $this->変数名 のような形で利用します。
インスタンスの例
以下のようなクラスを作成したいとします。
1 2 3 4 5 6 7 8 |
class Man { public $name; public function show() { echo $this->name; } } |
このクラスを実際に使用する場合、クラスからインスタンスを生成しなくてはなりません。
インスタンスは以下のようにして生成します。
1 |
$インスタンス名 = new クラス名(); |
上記のクラスを使用する場合の例として、以下の書き方があります。
1 |
$seito = new Man(); |
プロパティとメソッドの利用
インスタンス内のプロパティ(属性)へのアクセスする場合、以下のように行います。
1 |
$インスタンス名->変数名 |
例:seitoインスタンスの name属性に "鈴木"を代入
1 |
$seito->name = "鈴木"; |
インスタンス内のメソッド(関数)を実行する場合、以下のように行います。
1 |
$インスタンス名->関数名(); |
例:seitoインスタンスの show関数を実行
1 |
$seito->show(); |
まとめ
PHPのクラス文法はC++やJava/C#と似たところが多く、わかりやすいと思います。
ただ、軸ラス内のプロパティを利用するにも $this での指定がいるところ、それとインスタンスとプロパティ/メソッドを利用する記号がピリオドでは無く -> であるところが異なります。
間違えないように注意しましょう。