session variables and scope?

From: Date: Tue, 03 Oct 2000 03:20:50 +0000
Subject: session variables and scope?
Groups: php.general 
Request: Send a blank email to php-general+get-18356@lists.php.net to get a copy of this message
Preface: I'm new to PHP... I've only been coding in it for a week or two - my "day job" has me work in ASP ... I'm having a real weird problem here... Each of my pages (by virtue of a standardized header) starts with a session initialization of: <? session_start(); if (!session_is_registered('dollarmode')) { session_register('dollarmode'); $dollarmode="US"; } ?> And inside my page, I require(..) various standardized routines, such as the site menu, and a set of common MySQL database routines... one of which gets me the current exchange rate for the US <-> Canadian dollar. (or as current as I decide it needs to be by manual updates of the database ;-) inside the menu routine, I have this: <a class=menu hreg="/togglemode.php"><? echo "<!-- " . $dollarmode . " -->"; if ($dollarmode=="CAN") { echo "Show US$ Prices"; else echo "Show CDN$ Prices"; ?></a> And all works well - the toggle mode routine successfully toggles the value of $dollarmode between "US" and "CAN" without error. Viewing the resulting HTML sourse always shows me a valid value of $dollarmode One of my other routines, inside my sub.php include file, is called GetMultiplier, which uses $dollarmode to determine if it needs to get the exchangerate, or just default it to 1, I cant seem to reference $dollarmode at all. Inside this function, a echo "<!-- " . $dollarmode . " -->" produces nothing for dollar mode - the resulting line is <!-- --> (ie, just the TWO spaces between the comment start and end tags...) If I copy the if statement above into the GetMultiplier routine, I always see it showing "Show CDN$ Prices"..... It's like $dollarmode doesnt exist inside the function at all..... And references to $dollarmode AFTER the call to GetMultiplier do show a valid value of $dollarmode... so I know it's not being reset somewhere. Is there a scope problem I've overlooked somewhere along the line? This is driving me absolutely bonkers, as ASP session variables are available everywhere... Thanks Scott.

« previous php.general (#18356) next »