Я смотрел на OOP Basics и увидел такой код (упрощенно это немного)Как заново создана уже сделал объект (пример)
Вы можете увидеть этот класс и выход
class Test{}
$a = new Test();
$b = new $a;
var_dump($b == $a); // true
Что я не понимаю, это $b = new $a
, но $a
- это уже объект, так как/почему это работает? Если я vardump $a
выход:
object(Test)#1 (0) {
}
Итак, как эта переменная работа с new
ключевого слова. Я думал, что мы могли бы использовать только new
с классом, который определен уже, или строкой, которая указывает на класс ех:
$var = 'Test';
new $var; // ok
, но в этом случае, $var
является строкой, а не другой объект.
Я вижу это в первый раз! очень интересно! –
PHP достаточно умен, чтобы понять, что, поскольку вы делаете 'new $ a', а as $ a - это объект, а не строка, он будет использовать это имя класса объекта для создания экземпляра нового объекта. –
@ RyanVincent Просто curios, если объект отличается, то почему у них одинаковые хэш-символы? – samayo