Деструктор вызывается дважды? [PHP5]

Panchous

Павел
Деструктор вызывается дважды? [PHP5]

Не могк понять, почему код деструктора выполнятеся дважды:
так задумано или это баг? Просветите пожалуйста.
Заранее благодарен.
Система: Win2kServer / Apache 2.0.50 / PHP 5.0.1

__________Код____________

PHP:
class MyClass {
  function __construct(){
    echo"construct";
  }
  function __destruct(){
    echo"destruct";
  }
}


$c = new MyClass();
echo"???";

__________Код____________

/** output:

construct
destruct
???
destruct

*/
 

Eduard

Новичок
Я не знаю точно, но есть предположение, что в PHP5 есть оптимизатор, и он, видя что больше объект не используется, грохает его.

Это только догадки

Попробуй выполнить действие с объектом после echo "???";
 

Panchous

Павел
Автор оригинала: Eduard
Я не знаю точно, но есть предположение, что в PHP5 есть оптимизатор, и он, видя что больше объект не используется, грохает его.

Это только догадки

Попробуй выполнить действие с объектом после echo "???";
уже пробовал - не помогло :(
 

.des.

Поставил пиво кому надо ;-)
читать о zend.ze1_compatibility_mode
PHP:
$c = new MyClass();
в php5 если включена совместимость с php4 будет создан объект и скопирован в $c

очень полезно в таких случаях E_STRICT
 
Сверху