【PHP入門】classの使い方 基本から応用までを紹介

今回はPHPのクラスの基本的な使いから応用までを紹介します。

目次

PHPクラスの定義・インスタンス化

class クラス名{
  処理
}

上記のようにクラスを定義し、{}の中に処理を書きます。

$オブジェクト名 = new クラス名();

上記のようにクラスをインスタンス化できます。

プロパティ/メソッドの定義・呼び出し

class クラス名
{
  //プロパティの定義
  public $変数名 = 値;
 
  //メソッドの定義
  public function メソッド名(){
    処理
  }
}

プロパティ・メソッドはそれぞれ変数・関数と同じように定義します。また、プロパティやメソッドの頭にpublic, protected, privateのいずれかのアクセス修飾子を宣言することでアクセス制限を指定できます。

$オブジェクト名 = new クラス名();
$オブジェクト名->メソッド名(); //メソッドの呼び出し
$オブジェクト名->プロパティ名; //プロパティの呼び出し

上記のようにオブジェクト化したクラスからプロパティ・メソッドを呼び出します。

クラスの継承

class クラス名 extends 継承元クラス名 {
  処理
}

別のクラスのプロパティ・メソッドを継承するにはextendsを使用します。また継承元のクラスのプロパティやメソッドを継承したクラスで再定義(オーバーライド)可能です。

コンストラクタ:__construct()

class クラス名{
    function __construct(){
        処理
    }
}

クラスからインスタンスを生成する際、__construct()で定義した処理が最初に実行されます。

class Car{
  public $doors;

  function __construct($doors)
  {
    $this->doors = $doors;
  }
  public function count_doors(){
    echo "ドアの数は" . $this->doors . "つです。";
  }
}

$car = new Car(4);
$car->count_doors(); //ドアの数は4つです。

クラスをインスタンス化する際に引数を渡したい場合は、上記のようにコンストラクタで引数を指定できます。

class クラス名 extends 継承元クラス名{
    function __construct(){
      parent::__construct($引数);
        処理
    }
}

継承するクラスのコンストラクタに引数を渡す必要がある場合は上記のように「parent::」を使ってコンストラクタを呼び出します。

アクセス修飾子:static

クラス名{
  static $プロパティ名 = 値;
  static function メソッド名(){
    処理
  }
}

クラスで定義したプロパティ・メソッドをインスタンス化せずに使用するにはstaticを宣言します。

class Car{
  static $doors = 4;

  static function drive(){
    echo "I am driving.";
  }
}

echo Car::$doors; //4
Car::drive(); //I am driving.

staticを宣言したプロパティ・メソッドは上記のように「クラス名::$プロパティ名/メソッド名();」で呼び出せます。

以上です。

参考サイト

URLをコピーする
URLをコピーしました!
目次
閉じる