phpで遊んでいたらこんなことが出来てしまったんですが、これってインスタンス化されたオブジェクト(つまりはインスタンス)でインスタンス化してるってことですよね?
「クラスは設計図で、それをもとにインスタンス化をしてインスタンスを作る。」という知識しかないため、どうして「インスタンスでインスタンス化してインスタンスを作る」ようなことが出来るのか、理由がわかりません。反則技みたいなものでしょうか?
php
1<?php 2 3class TestClass { 4 private $hoge = 'hoge'; 5 6 function __construct($const) { 7 $this->hoge = $const; 8 } 9 10 public function getHoge() { 11 return $this->hoge; 12 } 13} 14 15$class1 = new TestClass("hoge1"); 16var_dump($class1->getHoge()); 17 18$class2 = new $class1("hoge2"); 19var_dump($class2->getHoge());
実行結果: https://paiza.io/projects/SHEC99ip-8JscMiWubCcaA
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/16 00:38