Hallo Tom,
Ich meine mich noch daran erinnern zu können, dass eine Änderung in $HTTP_SESSION_VARS keine Änderung in $_SESSION verursacht hat, mit Ausnahme der Initialisierung durch session_start().
Ich habe mir mal selbst PHP 4.1 kompiliert (das ist die erste Version, die $_SESSION kannte) und habe dort mir die Pointer auf $_SESSION und $HTTP_SESSION_VARS geben lassen:
------------------------------ schnipp -------------------------------------
christian@cobalt ~/dev/php-4.1.0 $ gdb ./php
GNU gdb 6.7.1
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) break zend_execute.c:1223
Breakpoint 1 at 0x809bcc4: file ./zend_execute.c, line 1223.
(gdb) run
Starting program: /home/christian/dev/php-4.1.0/php
<?php session_start (); echo $_SESSION; echo $HTTP_SESSION_VARS; ?>
Breakpoint 1, execute (op_array=0x84dd484) at ./zend_execute.c:1223
1223 zend_print_variable(get_zval_ptr(&opline->op1, Ts, &EG(free_op1), BP_VAR_R));
(gdb) print Ts[opline->op1.u.var].var.ptr
$1 = (zval *) 0x84e1a7c
(gdb) c
Continuing.
X-Powered-By: PHP/4.1.0
Set-Cookie: PHPSESSID=e64b44618f825ca0d09502192dcc8891; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html
Array
Breakpoint 1, execute (op_array=0x84dd484) at ./zend_execute.c:1223
1223 zend_print_variable(get_zval_ptr(&opline->op1, Ts, &EG(free_op1), BP_VAR_R));
(gdb) print Ts[opline->op1.u.var].var.ptr
$2 = (zval *) 0x84e1a7c
(gdb) c
Continuing.
Array
Program exited normally.
------------------------------ schnapp -------------------------------------
Wie man hier sehen kann, ist der Zeiger für die Variable hier in beiden Fällen auf 0x84e1a7c, d.h. auf die gleiche Variable.
Viele Grüße,
Christian