PHPにおけるOOPのプロパティゲッター
プライベートプロパティを持つ次のクラスがあるとします:
<?php
class User {
private $name;
private $surn;
public function __construct($name, $surn) {
$this->name = $name;
$this->surn = $surn;
}
}
?>
ご覧の通り、これらのプロパティはオブジェクト作成時に一度だけ設定されます。 しかし現在、これらのプロパティを読み取ることは不可能です。 なぜなら、それらはプライベートであり、それに対応するメソッドが存在しないからです。
これらのプロパティを読み取ることができる特別なメソッドを作成しましょう。
そのようなメソッド(ゲッターと呼ばれます)は通常、
単語getで始まり、その後に対象のプロパティ名が続きます。
私たちのプロパティのゲッターを作成しましょう:
<?php
class User {
private $name;
private $surn;
public function __construct($name, $surn) {
$this->name = $name;
$this->surn = $surn;
}
public function getName() {
return $this->name;
}
public function getSurn() {
return $this->surn;
}
}
?>
それらの動作を確認してみましょう。 オブジェクトを作成し、パラメータとしてユーザーデータを渡します:
<?php
$user = new User('john', 'smit');
?>
ゲッターを利用してこれらのデータを読み取ります:
<?php
var_dump($user->getName());
var_dump($user->getSurn());
?>
Employeeクラスで、
3つのプライベートプロパティ:名前、給与、年齢を作成してください。
コンストラクタのパラメータとして、 これらのプロパティの値を渡してください。
各プロパティの値を出力するゲッターを作成してください。