0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PHPのクラスについて

Posted at

##はじめに

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

サブクラスでの親クラスのメソッドが引き継がれている。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?