Смерть объекта

_vampiro_

Новичок
Смерть объекта

Господа... я опять с объектами. ООП в 5-ке не дает мне спать спокойно на рабочем месте.
PHP:
class a{
    private $counter=1;
    
    function some(){
        echo $this->counter++;
    }
}

function something_one(){
    global $inst_1;
    $inst_1 = new a;
    $inst_1->some(); //--1
    $inst_2 = $inst_1;
    $inst_2->some();//--2
    unset($inst_1);
    $inst_2->some();//--3
}

something_one();

$inst_1->some(); //--4
рисует 1234

а не должен он умирать разве после 123? unset отменили? :(
 

Tor

Новичок
может так

1) копирование произошло по ссылке
2) пока есть хоть одна ссылка, объект не удаляется
 

_vampiro_

Новичок
PHP:
$inst_2 = $inst_1;
unset($inst_1); <-- это умерла первая ссылка.

$inst_2->some();//--3
} <-- тут умерла вторая ссылка, которая было локальной переменной внутри функции. :(


вроде так.
 

Gorynych

Посетитель PHP-Клуба
объект не может умереть, пока на него есть ссылки. В PHP 5 объекты передаются по ссылке.

-~{}~ 08.06.06 17:38:

еще очень забавный момент - объявление global $inst_1 в сочетании с попыткой его удаления
 

DiTHER

bang bang
тебе же сказали - в пхп5 ВСЕ объекты передаются по ссылке.
т.е.
новый.объектА = существующий.объектБ
это тоже самое что
новый.объектА = &существующиый.объектБ

аналогия ясна?
 
Сверху