phpbar.de logo

Mailinglisten-Archive

[php] Bezeichnung von lokalen und Sessionvariablen

[php] Bezeichnung von lokalen und Sessionvariablen

Hans Egg hans.egg at swissonline.ch
Son Feb 18 17:35:06 CET 2007


Hallo Dejan

Am 17.02.2007 um 00:21 schrieb Dejan Spasic:

> Am Freitag, den 16.02.2007, 14:45 +0100 schrieb Hans Egg:
>
>> $a = $_SESSION[a]
>>
>> Nun stelle ich fest, dass eine Veränderung von $a auch $_SESSION[a]
>> beeinflusst. Ich hätte erwartet, dass dies nur geschieht, wenn ich
>> eine Referenz zuweise:
>>
>> $a = &$_SESSION[a]
>
> Das ist auch richtig... Wenn es wirklich so der Fall sein sollte, dann
> müsste sich auch der Wert in der Variable $a auch ändern wenn du es in
> der SESSION änderst. Ist es auch so...? Welche PHP Version  
> verwendest du
> und auf welches OS ist diese Verhalten zu beobachten?

PHP 5.1 auf www.bfq.ch/biofotoquiz/phpinfo.php
PHP 5.2 XAMPP auf Windows
PHP 5.0.5 XAMPP auf Mac

> Kann man von dem relevante Quellcode mehr sehen?

www.bfq.ch/biofotoquiz/varTest.php

Hier und auf meinem Testserver mit PHP 5.2. funktioniert IMHO alles  
korrekt. Es verhält sich anscheinend nur der Testserver mit PHP 5.0.5  
unerwartet. Beim ersten Aufruf sieht das so aus:

session_start();
$a = 'a';
$_SESSION['a'] = $a;
    a = a
    session = Array ( [a] => a )
$_SESSION['a'] = 'b';
    a = a
    session = Array ( [a] => b )
$a = 'c';
    a = c
    session = Array ( [a] => b )

Beim weiteren Aufrufen dieser Seite ergibt sich dann dies:

session_start();
$a = 'a';
$_SESSION['a'] = $a;
    a = a
    session = Array ( [a] => a )
$_SESSION['a'] = 'b';
    a = b
    session = Array ( [a] => b )
$a = 'c';
    a = c
    session = Array ( [a] => c )

Ob das nun ein Bug in PHP 5.0.5 oder in XAMPP für Mac ist? ("Die Mac  
OS X und Solaris Versionen befinden sich noch in der Entwicklung.  
Benutzung auf eigene Gefahr.")

Gruß, Hans



php::bar PHP Wiki   -   Listenarchive