Re: Class not functioning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



--- 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]



      

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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux