Re: Legal $_SESSION names
| From: | Stuart | Date: | Sat, 23 May 2009 13:25:27 +0000 |
| Subject: | Re: Legal $_SESSION names | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-293014@lists.php.net to get a copy of this message | ||
2009/5/22 tedd <tedd@sperling.com>:
> Hi gang:
>
> While we're discussing what's legal in css, here's a couple of things I've
> found about sessions.
>
> I found that starting a session with a number doesn't work.
>
> $myvar = $_SESSION['1myvar'];
This won't work because $1myvar is not a valid variable. I believe the
only reason this restriction is in place due to register_globals. I
dunno if this restriction has been lifted since register_globals being
removed from PHP6 but of all the "annoyances" in PHP this is a pretty
minor example.
> I also found that dumping a session to a variable with the same name may
> cause problems, such as:
>
> $myvar = $_SESSION['myvar'];
>
> Regardless of what anyone may say to the contrary, it doesn't work
> everywhere. I found that out the hard way. The fix is simply to use a
> different name for the variable, such as:
>
> $my_var = $_SESSION['myvar'];
I'm just guessing but I'd say this has to do with the way superglobals
are created. Since 5.0.0 a configuration option called
auto_globals_jit has existed and it defaults to being on. It causes
the creation of superglobals to be delayed until they are actually
used. I don't know how it interacts with register_globals (the manual
says it'll be disabled if register_globals is on) but it makes sense
to me that this issue is related to that.
I'd say you've found a bug, but you'll need a repeatable example
before you can report it.
-Stuart
--
http://stut.net/