Wouter, Implementing your static idea was pretty easy, I was already referencing Notifier with the :: operator in my other methods, however I am running into trouble assigning new values to the static array. I am getting a "syntax error, unexpected '[' " on this line of my Notifier class: Notifier::notifyQ[] = '<div class="'.$message; . . . Any ideas why this is causing an error? (note: I did try using $this->Notifier, and it said I cannot do what-not to a non-object, can't remember the exact message at the moment) On Tue, Dec 15, 2009 at 2:30 PM, Wouter van Vliet / Interpotential < public@xxxxxxxxxxxxxxxxxx> wrote: > Allen, > > The short answer (but don't follow this): > <?php > class Meetgreet { > public function deleteSingle($id, $number) { > // do something > global $Notify; > $Notify->addToQ( .. ); > } > } > ?> > > The long(er) answer: > I assume your Notifier object functions as singleton? Ie; accross your > entire application, there is only one instance of that class? > > Why not go-static? That is, to my experience, the sweetest way to make > something globally accessible - without making something global. Like so > > <?php > class Notifier { > > protected static $queue = Array(); > > // make sure it can't be instantiated > private constructer __construct() { > } > > public static function addToQ( $arg, $anotherArg) { > self::$queue[] = $arg.' - '.$anotherArg; > } > > } > > // and then from within any method anywhere, call > Notifier::addToQ('foo', 'bar'); > > ?> > > Does that work for you? > > Regards, > Wouter > > (ps. call me a purist, but a function defined in a class is no longer > called a function, but a *method*) > > 2009/12/15 Allen McCabe <allenmccabe@xxxxxxxxx> > >> Hey all (and Nirmalya, thanks for the help!), >> >> >> I have a question that I just can't seem to find via Google. >> >> I want to be able to add messages to a qeue whenever my classes complete >> (or >> fail to complete) specific functions. I think have a call within my html >> to >> my Notifier class to print all qeued messages (via a function 'printQ'). >> >> How do I access a globally instantiated class from within another class? >> >> Example: >> >> <?php >> >> // INSTANTIATE >> $Meetgreet = new Meetgreet; >> $Notify = new Notifier; >> >> ... >> ... >> >> $Meetgreet->deleteSingle($id, 1); // This completes a function within >> Meetgreet class. That function needs to be able to use the Notifier >> function >> addtoQ(), how would this be accomplished? >> >> ?> >> ... >> ... >> >> <?php $Notify->printQ() ?> >> >> On Mon, Dec 14, 2009 at 6:07 PM, Nirmalya Lahiri >> <nirmalyalahiri@xxxxxxxxx>wrote: >> >> > --- On Tue, 12/15/09, Allen McCabe <allenmccabe@xxxxxxxxx> wrote: >> > >> > > From: Allen McCabe <allenmccabe@xxxxxxxxx> >> > > Subject: Class not functioning >> > > To: "phpList" <php-general@xxxxxxxxxxxxx> >> > > Date: Tuesday, December 15, 2009, 6:17 AM >> > > Hey everyone, I just delved into >> > > classes recently and have been having >> > > moderate success so far. >> > > >> > > I have a puzzler though. >> > > >> > > I have the following class decalred and instantiated: >> > > >> > > class Notify { >> > > var $q = array(); >> > > >> > > public function addtoQ($string, $class) >> > > { >> > > $message = '<span class="'. $class .'">'. >> > > $string .'</span>'; >> > > $this->q[] = $message; >> > > } >> > > >> > > public function printQ() >> > > { >> > > if (isset($q)) >> > > { >> > > echo '<p align="center" >> > > class="notification">'; >> > > foreach($this->q as $msg) >> > > { >> > > echo $msg ."\n"; >> > > } >> > > echo '</p>'; >> > > } >> > > >> > > return; >> > > } >> > > >> > > function __destruct() >> > > { >> > > if (isset($q)) >> > > { >> > > unset($this->q); >> > > } >> > > } >> > > } // END CLASS Notify >> > > >> > > >> > > And in my script, I call it like so: >> > > $Notif = new Notify; >> > > >> > > I have run other statements in other classes that should be >> > > adding to the $q >> > > array (ie. Notify::addtoQ('ERROR! There Was An Error >> > > Updating The >> > > Database!', 'error');) >> > > >> > > However, when I try to get my webpage to display them >> > > using: >> > > >> > > $Notify->printQ(); >> > > >> > > it does not seem to want to loop through this array (and >> > > print the >> > > messages). I am getting NO error message, in fact >> > > everything 'looks' fine, >> > > I'm just not seeing the appropriate message. >> > > >> > > Any help would be appreicated! >> > > >> > >> > Allen, >> > You have made a small typing mistake in function printQ() where you >> would >> > like to checked the array for its existence. By mistake you have wrote >> "if >> > (isset($q))". But your array variable is not an freely accessible >> array,the >> > array is embedded into an object. So, you have to write the like "if >> > (isset($this->q))". >> > >> > Another point, you can't add a message into the array by calling the >> > member function addtoQ() using scope resolution operator "::". If you >> really >> > want to add message into the array, you have to call the member function >> > from within the object. (ie. $Notif->addtoQ('ERROR! There Was An Error >> > Updating The Database!', 'error');). >> > >> > --- >> > নির্মাল্য লাহিড়ী [Nirmalya Lahiri] >> > +৯১-৯৪৩৩১১৩৫৩৬ [+91-9433113536] >> > >> > >> > >> > >> > >> > > > > -- > http://www.interpotential.com > http://www.ilikealot.com > > Phone: +4520371433 >