ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

PHP 学習 part. 6

クラスとオブジェクト

PHP のクラスとオブジェクトについて学びます。

クラスの定義

PHPオブジェクト指向のプログラミングを行うための機能があります。

インスタンスのコピーは、clone キーワードを付けて行います。単純な代入だと参照のコピーとなるので注意が必要です。

<?php

class Emplpyee
{
    public $name;
    public function hello()
    {
        echo "こんにちは", PHP_EOL;
    }
}

$tanaka = new Emplpyee();
$tanaka->name = "田中";
$tanaka->hello();

$suzuki = clone $tanaka;
$suzuki->name = "鈴木";

echo $tanaka->name . " " . $suzuki->name, PHP_EOL;

f:id:yamakasa3:20191002152210p:plain

this

$this という自分自身のオブジェクトにアクセスするためのキーワードを使って、セッターメソッドやゲッターメソッドを定義します。

<?php

class Book
{ 
    public $title;
    private $price = 1000;

    public function getPrice()
    {
        return $this->price;
    }

    public function setPrice($price)
    {
        $this->price = $price;
    }

    public function setTitle($title)
    {
        $this->title = $title;
    }

    public function info()
    {
        return $this->title . " " . $this->price . "円\n";
    }
}

$book = new Book();
$book->setTitle("秋の本");
echo $book->info();

static

static キーワードをつけて変数を宣言すると、インスタンスを生成せずにアクセスすることができます。ダブルコロンをつけてアクセスします。

<?php

class Student
{
    public $name;
    public static $school = "東京大学";
}

echo Student::$school, PHP_EOL;

パーフェクトPHP

パーフェクトPHP