The $_SESSION PHP Superglobal

I’m using the $_SESSION superglobal in my multi-user tasks development instead of the older $HTTP_SESSION_VARS superglobal. To keep backward compatability, I was creating a $_SESSION variable if one didn’t already exist and just setting it to $HTTP_SESSION_VARS. This way, I could just always look for the $_SESSION variable and still be compatible with older versions of PHP.

Then I ran into some trouble.

If you are running a version of PHP that doesn’t have the $_SESSION variable, I need to declare the $_SESSION variable I created as a global variable within a function if I want to reference the data in the $_SESSION. If I declare the $_SESSION variable as global in a version of PHP that already has the $_SESSION variable, I break it.

One solution would be to write my own code for putting and retrieving data into sessions. I could wrap everything and talk to either the $_SESSION or $HTTP_SESSION_VARS as needed. I’d also have to do this for the $_REQUEST variable and others. This would be a lot of extra code. Actually, I bet I’ve already broken this somewhere. Turning on globals is not an option.

I think I’m just going to require PHP 4.2 or later and call it good. Solutions, comments and constructive arguments for backward compatability are welcome.

UPDATE: Hmm, actually I could pretty easily include a ‘compatible_vars.inc.php’ page that did the checking and :scare: global-ing :/scare: within the functions that need it. I’ll try that if no better solutions present themselves.

This post is part of the project: Tasks Pro™. View the project timeline for more context on this post.