今回のコードでは親クラスが BasePost となっており、子クラスが Post と SponsoredPost となっていますが、Post には construct の宣言がされていない状態でメソッド内で $text を用いています。一方 SponsoredPost では construct で、
parent::__construct($text, $sponsor);
上記のように書かれていますが、Post でその宣言が必要無い理由が分かりません。
class SponsoredPost extends BasePost
{
private $sponsor;
public function __construct($sponsor)
{
$this->sponsor = $sponsor;
}
public function show()
{
printf('%s by %s' . PHP_EOL, $this->text, $this->sponsor);
}
}
上記のようにコードを変更して実行したところ、$this->text の内容が表示されませんでした。
解説の程よろしくお願いします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?