PHPのクラスの基本

PHPのクラス

基本系

プロパティとメソッドにアクセス権を記載します。publicにすると他のクラスからもアクセスできます。※functionは省略可能で、省略すると自動でpublicになります。 例えばこんな感じです。
アクセス権
public アクセスの制限なし。
protected 現在のクラスと子クラスからアクセス可能。
private 現在のクラスのみアクセス可能。

インスタンス化

実行

クラスの継承 extends

子クラスでイニシャライザ(コンストラクタ)を使わない場合 子クラスでプロパティを別で設定した場合、イニシャライザを再設定しなくてはならない。
※swiftの場合は、extensionは継承ではなく、拡張で使われている。混同しやすいので注意。

interfaceとabstract

基本的には「swiftのプロトコル(protocol)と同じ」使い方で、プロトコル(親クラス)で定義したメソッドを子クラスで必ず実装しなくてはなりません。

interfaceとabstractの違い

①interfaceは実装すべきメソッド名を宣言するだけでしかできないのに対し、abstractは実装すべきメソッド名だけでなく通常のクラスと同様のプロパティとメソッドを定義記述できます。 ②interfaceは、複数のinterfaceを子クラスに継承させることができるのに対し、abstractは、一つだけしか継承できません。 以下、個別にサンプルを記述します。

interface

継承には「implements」を使います。

abstract

継承には「extends」を使います。

クラスファイルの場所

通常は、クラスごとにクラス名.phpで保存しておいて、必要な時にrequire_once(“クラス名.php”)で呼び出します。