【PHP】コンストラクタ―について
コンストラクタ―について検索して調べると概ね以下のように説明されています。
----------------------------------
コンストラクタ
インスタンス生成時にオブジェクトを初期化したい場合にコンストラクタメソッドを使用できます。
コンストラクタメソッドは以下のように引数を指定する事もでき、インスタンス生成時に__construct()が自動的に実行されます。
----------------------------------
イマイチ判然としません。
「newによってインスタンスを作成される時に自動的に呼び出されるもの」と自分では解釈していました。
例えば以下のような場合
public function __construct($text)
{
$this->text = $text;
}
【$text】の値をnewされることによって自動的に「保持」されるということなのでしょうか?
実際に表示させるときは【$posts[0]->show();】(show()メソッド)で表示させるわけですよね?
その上には【private $text;】でプロパティがあります。
ごく基本的な質問かと思いますが、【public function __construct($text)】
コンストラクタ―を作成する理由がよくわかりません。
初学者でも分かりやすいように解説していただけないでしょうか?
宜しくお願い致します。
<記述サンプル>
-------------------------------
<?php
class Post
{
private $text;
public function __construct($text)
{
$this->text = $text;
}
public function show()
{
printf('%s' . PHP_EOL, $this->text);
}
}
class SponsoredPost extends Post
{
private $sponsor;
public function __construct($text, $sponsor)
{
parent::__construct($text);
$this->sponsor = $sponsor;
}
public function showSponsor()
{
printf('%s', $this->sponsor);
}
}
$posts = [];
$posts[0] = new Post('hello');
$posts[1] = new Post('hello again');
$posts[2] = new SponsoredPost('hello hello', 'Yahoo');
$posts[0]->show();
$posts[1]->show();
$posts[2]->show();
$posts[2]->showSponsor();
お礼
>敵キャラを作ったとき、最初の座標を入れるとか、 >耐久性がある敵キャラなら後何発ダメージを食らったらやっつけられるかのカウンタとか。 すごく具体性があって分かりやすかったです。 何を書きたいかは自分次第でどうにでもすればいいんですね。 ありがとうございました!