PHP クラスメソッドのこと

クラスメソッド

オブジェクト指向:変数と関数をまとめたもの 関数=メソッド

クラス:オブジェクトの設計図

オブジェクト:クラスからインスタンス化 クラスからオブジェクトを作る

設計図からオブジェクトを作ることをインスタンスという

メソッド:クラス名の中に書かれた関数のこと

クラスの作成

<?php
// クラスを定義する(作成する)
class Player { // クラス名の先頭は大文字にする(PHPの場合)
  public function walk(){ // メソッドの追加
    $message = "Hello World"
    echo $message;
  }
}

// クラスからオブジェクトを作る
$player1 = new Player(); // newと()を付けることでクラスを利用することができる

// オブジェクトのメソッドを呼び出す
$player1->walk();
?>

コンストラクタ:クラスからインスタンスを生成する際(newを行うとき)最初に実行される関数
自動的に実行される。インスタンスの初期化。
https://uxmilk.jp/14376

使用方法)__constructを使う アンダーバーは二つ

<?php
class Test{
  protected $name;
  function __construct(){
    $this->name = "ユウ"; // __construct内で$nameを「ユウ」に初期化
  }
  function show(){
    echo $this->name;
  }
}

// コンストラクタの実行
$seito = new Test(); // コンストラクタの実行
$seito->show(); // 「ユウ」が表示される
?>

コンストラクタは引数を付けることができる
インスタンス生成時(newを行ったとき)この引数に値を設定する

引数にした場合、必ずnewを行う際に引数を指定しなくてはいけないため初期化を忘れることがない。

<?php
class Test{
  protected $name;
  function __construct($n){
    $this->name = $n; // __construct内で$nameを引数$nに初期化
  }
  function show(){
    echo $this->name;
  }
}

// コンストラクタの実行
$seito = new Test("雄剣"); // コンストラクタの実行
$seito->show(); // 「雄剣」が表示される
?>

クラスを継承する

親クラス(スーパークラス):継承元

子クラス(サブクラス):継承したところ、特殊継承のところ

継承するには class 子クラス名 extends 親クラス名{}を表記する

<?php
// クラスを継承する
// 親クラス↓
class Box {
    public $myItem;
    public function __construct(){
        $this->myItem = "新しいアイテム";
    }
    public function open(){
        echo "宝箱を開いた。".$this->myItem."を手に入れた。\n";
    }
}
// 子クラス↓
class JewlryBox extends Box{
    public function look(){
        echo "宝箱はキラキラと輝いている";
    }
}
$box = new Box();
$box->open();
echo "\n";
$jewlryBox = new JewlryBox();
$jewlryBox->look(); // 子クラスで定義済み
$jewlryBox->open(); // 子クラスにはないので、親クラスから継承される
// この場合、コンストラクタは一つだけなので同じものを使用している
?>
  • X