объектом?
<?php
class A {
public $g = 5;
}
$a = new A();
t($a);
var_dump($a);
function t($obj){
$obj = null;
}
Чтобы делала нужно принимать по ссылке function t(&$obj) Но это обычно лишний костыль.
Если передавать по ссылке, то да, $a будет null. Но почему если не передавать по ссылке, то переменная не изменится? Объекты же передаются по ссылке
https://www.php.net/manual/ru/language.oop5.references.php
Изменится объект при: $obj->g = 10; В самих переменных $a и $obj хранится не сам объект, а указатель (та самая ссылка) на этот объект. Поэтому при простом вызове: $obj = null; лишь перезатирается указатель в переменной $obj. А в переменной $a он остаётся.
Понял, благодарю за объяснение
Обсуждают сегодня