--- On Tue, 12/15/09, Allen McCabe <allenmcc...@gmail.com> wrote:

> From: Allen McCabe <allenmcc...@gmail.com>
> Subject: [PHP] Class not functioning
> To: "phpList" <php-general@lists.php.net>
> 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]





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

Reply via email to