Unlike a real PHP array, $_SESSION keys at the root level must be valid variable names.
<?php
$_SESSION[1][1] = 'cake'; // fails
$_SESSION['v1'][1] = 'cake'; // works
?>
I imagine this is an internal limitation having to do with the legacy function session_register(), where the registered global var must similarly have a valid name.
$_SESSION
$HTTP_SESSION_VARS [deprecated]
$_SESSION -- $HTTP_SESSION_VARS [deprecated] — Session variables
Descrierea
An associative array containing session variables available to the current script. See the Session functions documentation for more information on how this is used.
$HTTP_SESSION_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_SESSION_VARS and $_SESSION are different variables and that PHP handles them as such)
Istoria schimbărilor
| Versiunea | Descriere |
|---|---|
| 4.1.0 | Introduced $_SESSION that the deprecated $HTTP_SESSION_VARS. |
Note
Notă: Aceasta este o variabilă 'superglobală', sau globală automată. Aceasta pur şi simplu înseamnă că ea este disponibilă în toate circumstanţele pe parcursul script-ului. Nu este nevoie de a scrie global $variable; pentru a o accesa din funcţii sau metode.
$_SESSION
Steve Clay
17-Aug-2008 02:28
17-Aug-2008 02:28
jherry at netcourrier dot com
02-Aug-2008 12:16
02-Aug-2008 12:16
You may have trouble if you use '|' in the key:
$_SESSION["foo|bar"] = "fuzzy";
This does not work for me. I think it's because the serialisation of session object is using this char so the server reset your session when it cannot read it.
To make it work I replaced '|' by '_'.
