【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
今回のコードでは親クラスが BasePost となっており、子クラスが Post と SponsoredPost となっていますが、Post には construct の宣言がされていない状態でメソッド内で $text を用いています。一方 SponsoredPost では construct で、
BasePost
Post
SponsoredPost
construct
$text
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 の内容が表示されませんでした。 解説の程よろしくお願いします。
$this->text
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
今回のコードでは親クラスが
BasePostとなっており、子クラスがPostとSponsoredPostとなっていますが、Postにはconstructの宣言がされていない状態でメソッド内で$textを用いています。一方SponsoredPostではconstructで、上記のように書かれていますが、
Postでその宣言が必要無い理由が分かりません。上記のようにコードを変更して実行したところ、
$this->textの内容が表示されませんでした。解説の程よろしくお願いします。