Re: destructor access to constants

From: Date: Sun, 06 Jul 2003 12:14:30 +0000
Subject: Re: destructor access to constants
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-3272@lists.php.net to get a copy of this message
Hello Ulf, Sunday, July 6, 2003, 12:27:00 PM, you wrote: UW> Hi, UW> I'm wondering if it's a bug to give automatically called destructors UW> access to constants (PHP Version 5.0.0b1). I'd expect to be neither able UW> to access global variables nor constants after script termination (die()). UW> Ulf UW> $dtor = 'global $dtor variable is visible'; UW> define('DTOR', 'DTOR constant is visible'); UW> class dtor { UW> function __destruct() { UW> global $dtor; UW> printf('$dtor = "%s"<br> DTOR = "%s"<br>', UW> $dtor, DTOR); UW> } UW> } UW> $d1 = new dtor(); UW> unset($d1); UW> $d2 = new dtor(); UW> die(); UW> generated output: UW> $dtor = "global $dtor variable is visible" UW> DTOR = "DTOR constant is visible" UW> $dtor = "" UW> DTOR = "DTOR constant is visible" Global variables are a bit complicated but constants are either bound to the class so they are obviously available in instance destruction or as in your case they were registered in the global space and hence destructed after all script action is finished which includes automatic destructor calls from GC. -- Best regards, Marcus mailto:helly@php.net

« previous php.internals (#3272) next »