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>', $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:[EMAIL PROTECTED]


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to