Re: Emulating a class destructor
| From: | Scott Hurring | Date: | Tue, 11 Jun 2002 20:34:06 +0000 |
| Subject: | Re: Emulating a class destructor | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-101615@lists.php.net to get a copy of this message | ||
This is completely off the top of my head (i've never done this
before) -- but try single-quoting it to prevent interpolation
register_shutdown_function('$this->cleanup()');
--
Scott Hurring
Systems Programmer
EAC Corporation
scott (*) eac.com
--
"William_dw -- Sqlcoders" <webmaster@sqlcoders.com> wrote in message
news:009401c211d9$a1863da0$6520fea9@dw...
> Hi there!,
> I'm trying to emulate a class destructor, according to the PHP documentation
> I can emulate this by using a call to register_shutdown_function(),
> containing the function to be called upon shutdown.
>
> While this apparently works outside a class, I want to use it inside a
> class, in other words I want to have something like this:
>
> class cRoute{
> function cRoute(){
> //register the shutdown function in case people who use this class
> dont call the appropiate close methods.
> register_shutdown_function("cleanup()");
> }
>
> function cleanup(){
> //cleanup.
> trigger_error("Please call close() before the page ends, to prevent
> problems close() has been called automatically for you.");
> $this->close();
> }
>
> function close(){
> //close open sockets, etc.
> }
> }
>
> I have tried:
> register_shutdown_function("cleanup()");
> register_shutdown_function("$this->cleanup()");
> register_shutdown_function($this->cleanup());
> register_shutdown_function("cDB::cleanup()");
>
> They all return something like: Warning: Unable to call ()() - function does
> not exist in Unknown on line 0
>
> If anyone has any ideas I'd appreciate the help.
> Thanks in advance!,
> Dw.
>