##はじめに
PHPのクラスとは関数や変数を組み合わせた集合体のこと。
クラスの中で変数や定数をプロパティ、関数をメソッドと呼んでいる。
##クラスを定義し、コードを書いてみた
例えば、Maleというクラスを定義する場合、class(クラス名)と記載する。PHPではクラス名は慣例的に大文字から始める。
class Male{
プロパティ(クラス内で使われる変数、定数)を記載
public $name;
定数の場合はconst, 変数の場合はpublic, protected, privateを用途毎に使用する
public, protected, privateをアクセス修飾子と呼び、以下のような違いがある。
public = どこからでもアクセスが可能。
protected = 定義されたクラスと継承クラスからアクセスが可能。
private = 同じクラス内からのみアクセス可能。
コンストラクターはクラスからオブジェクトがnewで予備だされるときに自動で呼び出されるメソッド(メソッドはクラス内では関数のこと)
プロパティをメソッド内に呼び出すためには疑似変数$thisを使用する(定数の場合はself::定数を使用する)
public function __construct($name){
$this->name = $name;
}
インスタンスを生成し、名前suzukiを代入。
$male = new Male('suzuki');
echo $male->name;
出力結果
suzuki
##クラスの継承
クラスを継承するときはextendsを使用する。
extendsを使うとサブクラス(ここではHumanB)はHumanというクラスのメソッドを引き継ぐことができる。
<?php
class Human{
public $name;
function __construct($name){
$this->name = $name;
}
public function sayHello() {
echo "Hello, $this->name from A class";
}
}
class HumanB extends Human {
public function sayHello() {
echo "Hello, $this->name from B class";
}
}
$user1 = new Human("Suzuki Taichi");
$user2 = new HumanB("Tanaka Kazuya");
$user1->sayHello(); // Hi, Aoba Suzukaze from User class
$user2->sayHello();
?>
出力結果
Hello, Suzuki Taichi from A class
Hello, Tanaka Kazuya from B class
サブクラスでの親クラスのメソッドが引き継がれている。