Szukałem na OOP Basics i zobaczyłem kod tak (uproszczony mu bit)Jak działa już wykonany przedmiot zostać utworzony ponownie (patrz przykład)
widać to klasę i wyjście
class Test{}
$a = new Test();
$b = new $a;
var_dump($b == $a); // true
To, czego nie rozumiem, to $b = new $a
, ale $a
jest już przedmiotem, więc jak/dlaczego to działa? Jeśli robię vardump $a
wyjście jest:
object(Test)#1 (0) {
}
Tak, jak można, że zmienna praca z new
hasła. Myślałam, że używamy tylko new
z klasą, który jest już zdefiniowany, lub sznurkiem, który wskazuje na klasy Ex:
$var = 'Test';
new $var; // ok
ale w tym przypadku, $var
jest ciągiem znaków, a nie inny przedmiot.
Widzę to za pierwszym razem! bardzo interesujące! –
PHP jest na tyle sprytny, aby zrozumieć, że ponieważ robisz 'new $ a', a jako $ a jest obiektem, a nie łańcuchem, użyje tej nazwy klasy obiektu do utworzenia instancji nowego obiektu. –
@RyanVincent Po prostu ciekawostki, jeśli obiekt jest inny, dlaczego mają te same symbole mieszania? – samayo