At 01:18 PM 12/06/2002, Lars Torben Wilson wrote:
>On Tue, 2002-06-11 at 20:12, Tom Rogers wrote:
> > Hi
> > One way is to create an external reference to your class and use that in
> > the cleanup function. To make the cleanup function visible it has to be
> > declared inside the constructor (which makes it invisible to the rest of
> > the class:) This is how I have done it:
> >
> > <?
> > $ref = array();
> > class cRoute{
> >      function cRoute(){
> >          global $ref;
> >           $ref[] =& $this;
> >           //register the shutdown function in case people who use this
> > class dont call the appropiate close methods.
> >          register_shutdown_function("cleanup");
> >          function cleanup(){
> >          global $ref;
> >                  /cleanup.
> >          trigger_error("Please call close() to prevent problems, close()
> > has been called for you.");
> >                  $ref[0]->close();
> >          }
> >      }
> >      function close(){
> >                  //close open sockets, etc.
> >          mail("yourEmailHere","callback","Function Close called\n");
> >      }
> > }
> > $clean = new cRoute;
> > echo "exiting now <br>";
> > exit;
> > ?>
> >
> >
> > Tom
>
>Won't work if you create another object; you'll get a 'Fatal error:
>Cannot redeclare cleanup() in...' if you create more than one object.
>
>You can only declare a function once...and executing the line it starts
>on counts as declaring it.
>

True, but multiple objects was not mentioned in the original spec :)
The manual is not very clear on the array method of specifying the callback 
function. I'll work on it a bit more.
Tom






>--
>  Torben Wilson <[EMAIL PROTECTED]>
>  http://www.thebuttlesschaps.com
>  http://www.hybrid17.com
>  http://www.inflatableeye.com
>  +1.604.709.0506
>
>
>--
>PHP General Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to