Session/Class help

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

I'm currently building a custom Content Management system for a site we're  
working on, and am stuck. Currently, I am using a couple of classes to run  
most of the queries throughout the application. Well, I'm pretty stuck now.

What I need to do is use a variable throughout my classes that is a Session  
variable. I really can't find another solution. The syntax I was using for  
this variable before (I actually hard coded it during my testing and  
development before this point) was this:

class C_DisplayContent{

 var $username = "S_";

function foo(){
    //code that uses the variable as $this->username
}//end foo

}//end class

So, what I really need now is to have the variable look like this:

var $username = $_SESSION['username'];

and be able to use it like normal using the $this->username syntax. However,  
PHP seems to blow up at it. I've tried numerous ways of doing this  
syntactically and I always end up with errors. The current error I'm getting  

Parse error: parse error, unexpected T_VARIABLE in

The line is of course the line where I'm assigning the variable.

What am I missing in regards to using session variables within a class? Any  
help is appreciated.  

Re: Session/Class help

Quoted text here. Click to load it
  Since $_SESSION is a superglobal do you really need to assign it to

or at least try:

var $username = '';

function set_user_session()
   if (isset($_SESSION['username']) && !empty($_SESSION['username']))
      $this->username = $_SESSION['username'];
      $this->username = NULL; // or whatever you want


Re: Session/Class help

Quoted text here. Click to load it

Yup - that did it. I actually just killed the username var off and used  
$_SESSION['username'] throughout my application. I guess I didn't really  
think about it being global already... I'm new to PHP classes, so it's good  
to get this knowledge in. Thanks a ton for the help guys :)  

Re: Session/Class help

Jon wrote:
Quoted text here. Click to load it

You can't initialize a class member that way with anything other than a
constant (for the most part).  So function calls and other variables
are out.  You can, however, initialize it through the constructor:

class foo {
    public $username;

   public function __construct() {
        $this->username =& $_SESSION['username'];

Note that, because $this->username is assigned by reference, changes to
$this->username will also be reflected in $_SESSION (since they are two
variables pointing to the same value).

Site Timeline