ID:               20728
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Feedback
 Bug Type:         Session related
 Operating System: Linux 2.4.x
 PHP Version:      4.2.3
 New Comment:

I still don't see any bug here..using references with _SESSION is not
really useful as only the value is stored..

You think it should stay as a reference?





Previous Comments:
------------------------------------------------------------------------

[2002-12-01 19:06:00] [EMAIL PROTECTED]

Hello,

This code is incorrect - I must have pasted over the code after I
modified it during testing as $foobar is not a reference, but a copy. 
Here is what it should be (please note that you will have to hit reload
after the first hit as session gets created on the first hit - so load
it and hit reload - and then view the output):

<?php

session_start();

echo 'Before session modifications:<br><pre>';
var_dump($_SESSION);

$_SESSION['foobar'] = 1;
$foobar =& $_SESSION['foobar'];
global $foobar;
$foobar = 3;

echo '</pre>After session modifications:<br><pre>';
var_dump($_SESSION);

?>

------------------------------------------------------------------------

[2002-12-01 16:13:01] [EMAIL PROTECTED]

I get this normal output:

Before session modifications:

array(1) {
  ["foobar"]=>
  int(1)
}

After session modifications:

array(1) {
  ["foobar"]=>
  int(1)
}


No bug here. (using PHP 4.3.0-dev)


------------------------------------------------------------------------

[2002-12-01 16:07:16] [EMAIL PROTECTED]

Hello,

I don;t think it is quote as easy as saying "Don't use global with the
autoglobal arrays.".  Please read my original bug post.  I went out of
my way to be very detailed so that I don't waste your time - this does
nobody any good though if you don't take the time to read it.  More
specifically, this is the part I am referring to:

<ORIGNAL BUG POST>

So now you are asking that is interesting, but why would you ever want
to "global" an autoglobal.  Good question!  There would be no purpose
in doing this since $_SESSION is always in scope.  Well, this bug
presented itself to me in an application where there was a reference to
a portion of $_SESSION. Since the application is over 5000 lines of
code, we will view a highly condensed test version of this:

<?php

session_start();

echo 'Before session modifications:<br><pre>';
var_dump($_SESSION);

$_SESSION['foobar'] = 1;
$foobar = $_SESSION['foobar'];
global $foobar;
$foobar = 3;

echo '</pre>After session modifications:<br><pre>';
var_dump($_SESSION);

?>

</ORIGNAL BUG POST>

So the bug presents itself when you "global" a reference to an array
element of an autoglobal as well.  Perhaps, I should have used this as
the original code example.  Please take the time to read the full bug
post.

Thank You,

Mike

------------------------------------------------------------------------

[2002-11-29 20:58:08] [EMAIL PROTECTED]

Don't use global with the autoglobal arrays.


------------------------------------------------------------------------

[2002-11-29 17:59:17] [EMAIL PROTECTED]

Hello,

I have compiled the latest snap shot at
http://snaps.php.net/php4-latest.tar.gz.  The only change I had to make
for the PHP compiling process was to update my version of curl since
the snapshot requires curl-7.10.2 (the latest stable release).  It
compiled fine, I restarted the web server, and the same problem still
occurs with the same code from my original bug post.

Please let me know if you need any additional information.

Mike

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/20728

-- 
Edit this bug report at http://bugs.php.net/?id=20728&edit=1

Reply via email to