クラスとは?
- クラス(
class) とは、「機能やデータをまとめた設計図」のことです。 - 実際にその設計図から使える形にしたものを インスタンス(またはオブジェクト) と呼びます。
関数との違い
<?php
// 関数(function)で挨拶
function sayHello($name) {
return "こんにちは、{$name}さん!";
}
echo sayHello("山田");
関数は1回の動作に向いています。
クラスで同じことをやってみよう!
<?php
class Greeting {
public $name;
public function sayHello() {
return "こんにちは、{$this->name}さん!";
}
}
// クラスから「実体」を作る(インスタンス化)
$greet = new Greeting();
$greet->name = "山田";
echo $greet->sayHello();
class Greeting:設計図のはじまり$name:オブジェクトが持つデータ → プロパティsayHello():オブジェクトの動き → メソッド$this->name:そのオブジェクトの自分の名前、という意味
「new」を使って何度でも作れる
<?php $g1 = new Greeting(); $g1->name = "山田"; $g2 = new Greeting(); $g2->name = "佐藤"; echo $g1->sayHello(); // 山田さんにあいさつ echo $g2->sayHello(); // 佐藤さんにあいさつ
- クラス(設計図)が1つあれば、何人でも作れます!
クラスは「function」より整理しやすい
function profile($name, $age, $job) {
return "{$name}さん({$age}歳)は、{$job}です。";
}
でもクラスを使うと・・・
class Person {
public $name;
public $age;
public $job;
public function profile() {
return "{$this->name}さん({$this->age}歳)は、{$this->job}です。";
}
}
$p = new Person();
$p->name = "田中";
$p->age = 30;
$p->job = "デザイナー";
echo $p->profile();
- まとまっていてわかりやすくなる
これが「オブジェクト指向」の入口
- オブジェクト(データ)と、その動き(関数)をひとまとめにできる考え方を
オブジェクト指向(Object-Oriented)と呼びます。 - PHPも「オブジェクト指向に対応した言語」です。
PDOもクラス
$pdo = new PDO("mysql:host=localhost;dbname=sample", "root", "");
この new PDO(...) も、
PDOというクラス(設計図)が用意されていて、newでインスタンスを作って、$pdo->prepare()や$pdo->query()を使っている
PHPのクラスは、こういうところでもすでにたくさん使われているのです!
課題:自己紹介クラスを作ってみよう!
class Profile {
public $name;
public $age;
public $job;
public function show() {
// ここに表示用の文章を返す
}
}
$p = new Profile();
$p->name = "あなたの名前";
$p->age = 20;
$p->job = "プログラマー";
echo $p->show();
「〇〇さん(20歳)は、プログラマーです。」と表示されるように完成させてみましょう!
