お世話になります。
いつも大変わかりやすい動画と解説に感謝しております。
他の方の質問に似たものが既にありますが、より詳細を知りたいと思い質問いたします。
関数編ではグローバル変数である $pdo に関数内からアクセスできるようにするために $pdo を
addTodo() や deleteTodo() の引数に渡していたのだと解釈しています。
( global キーワードを使用するよりはこちらの方がより良い書き方であるため。)
今回のクラス編では $pdo を Todo::add() や Todo::delete() などのメソッドの引数に渡さずに
Todo クラスをインスタンス化する際に引数として渡してその際にコンストラクターによって,
$pdo を Todo クラスから生成されるインスタンスの private プロパティの値に設定しているのは、
$pdo が Todo クラス内からのみ参照されるということを保証するのが目的という解釈でよろしいでしょうか?
(index.php ファイルの 7 行目 $pdo = Database::getInstance(); で生成された $pdo が Todo クラスでのみ利用されるということをわかりやすくするため。)
それとも、Todo クラスをインスタンス化する際に予め引数として $pdo を渡して、それを private プロパティに設定することによって Todo クラスのメソッドを呼び出す度にいちいち引数に $pdo を渡す記述を省略するのが目的でしょうか?
よろしくお願いいたします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?