function UpgrX(&$x) {
$x.="aaaaaaaaa";
unset($x);
} [/QUOTE]
$x="qqqqq";
UpgrX($x);
exho $x;
то есть как в твоем примере "уничтожается" ссылка на объект, но не его значение...в функции создается объект == ссылка на передаваемый объект, с ним производятся манипуляции, и в случае с unset - этот новый объект ансетится, а первоначальный объект остается...
я бы сказал, сочуствую...2young
Кланяюсь...
Ну дык сказал бы, че там происходит?вот такое чудо
$a = & new PEAR();
$a = NULL;
проверьте расход памяти, и все сразу станет ясно
Он есть. Но он слишком прорачен. В отличие от того, что принято в других языках.Автор оригинала: StUV
видимо причина - отсутствие механизма работы с указателями...(или он уже есть ?)
BC - Backward Compatibility.Я вот подумал...если передача значений по ссылке рулит (не происходит создания временного дубликата объекта, можно менять значение параметра), почему в PHP это не происходит автоматически с переменными, указанными в качестве параметра функции - как это, например, осуществлено в Java?
Вот такая конструкция тоже работает:Автор оригинала: kvn Ну дык сказал бы, че там происходит?
new PEAR();
Из эксперимента, даже еще хитрее придумал, опытный ПХПист поймет хитрость:Автор оригинала: tony2001
>Временный объект почему-то не уничтожается, что и вызвает утечку памяти.
откуда такая информация?
function tmp(){
$a = new PEAR();
}
$c = 40000;
while ($c--){
tmp();
}
хитрость
Не надо путать особенности работы менеджера памяти в РНР с утечками памяти.Временный объект почему-то не уничтожается, что и вызвает утечку памяти.
В чем же эта особенность, так похожая на утечку памяти?Автор оригинала: si
Не надо путать особенности работы менеджера памяти в РНР с утечками памяти.
хватить переливать из пустого в порожнее. src доступны, изучайте ищите memory leak (к слову в РНР есть для этого средства) или пишите bug report на bugs.php.net.В чем же эта особенность, так похожая на утечку памяти?
Сорри.Автор оригинала: tony2001
сэр, похоже, не понимает значения понятия "утечка памяти".