[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Утекает или не утекает память?
Гость_гость
Привет!
Чёт не могу чётко уяснить, будут потери памяти в PHP 5.2 при использовании конструкций вида:


class a {

private $_t = null;

public function __construct() {

$this->_t = $this;

}

public function __destruct() {

unset($this->_t);

}

}


?

Спасибо.



Спустя 8 минут, 24 секунды (27.01.2012 - 13:41) Игорь_Vasinsky написал(а):
непонял... создал, сразу удалил... что здесь может утечь....

Спустя 6 минут, 59 секунд (27.01.2012 - 13:48) Гость_гость написал(а):
Да, но тут циклическая ссылка типа. Есть сомнение, что деструктор сработает после выполнения скрипта. То есть объект будет висеть в памяти "вечно", даже если вроде на него нет больше ссылок. "Вечно" имеется в виду будет уничтожен только после завершения работы скрипта.

Спустя 32 секунды (27.01.2012 - 13:48) Гость_гость написал(а):
Хотя, что париться, щас проверю.

Спустя 4 минуты, 11 секунд (27.01.2012 - 13:53) Гость_гость написал(а):

class a {

private $_t = null;

public function __construct() {

$this->_t = $this;

}

public function __destruct() {

echo 'destruct';
unset($this->_t);

}

}


$ob_a = new a();
echo '1<br>';
echo '2<br>';


Выводит:

1
2
destruct

Спустя 3 минуты, 44 секунды (27.01.2012 - 13:56) Гость_гость написал(а):

class a {

private $_t = null;

public function __construct() {

$this->_t = $this;

}

public function __destruct() {

echo 'destruct<br>';
unset($this->_t);

}

}


$ob_a = new a();
unset($ob_a);
echo '1<br>';
echo '2<br>';


Выводит:

1
2
destruct

Спустя 1 минута, 42 секунды (27.01.2012 - 13:58) Гость_гость написал(а):

class a {

private $_t = null;

public function __construct() {

//$this->_t = $this;

}

public function __destruct() {

echo 'destruct<br>';
//unset($this->_t);

}

}


$ob_a = new a();
unset($ob_a);
echo '1<br>';
echo '2<br>';


Выводит:

destruct
1
2

Спустя 1 минута, 57 секунд (27.01.2012 - 14:00) Гость_гость написал(а):
Вывод - для PHP 5.2 объект висит "вечно".
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.