phpbar.de logo

Mailinglisten-Archive

[php] $this wird zu SESSION

[php] $this wird zu SESSION

Dejan Spasic php at d-down.de
Fre Mai 20 11:29:33 CEST 2005


Am Donnerstag, 19. Mai 2005 23:02 schrieb Andreas Brandl:
> Hi!

Hi Andreas!

> Der u.s. Code macht doch genau das, was er soll... das Array $foo wird
> per setSomeData() jedesmal neu gesetzt, danach die Session per
> session_start() initialisiert und das Array $_SESSION neu gefüllt.

Aber wieso wird  $this ueberschrieben. Es wird ja nirgendswo der Inhalt der 
Session in einer Variable geschweige denn in $this zugewiesen. Das 
merkwuerdige daran ist, das es auf anderen PHP Versionen - PHP5.0.4 - 
funktioniert. Vieleicht kann mir jemand an einem codeschnipsel es etwas 
genauer erklaeren  ;). 

Ich sollte noch erwaehnen das ich das Problem mit dem PEAR Auth package habe, 
wenn ich die Methode start() aufrufe. 

> Was dir vielleicht weiterhilft:
>
> session_start(); an den Anfang des Scripts (auch gern in der Klasse),
> danach kannst du auf $_SESSION zugreifen.
>
>  >         $_SESSION['foo'] = $this->foo;
>
> Hier setzt du den Wert jedesmal neu. Vielleicht willst dus ja andersrum
> (ins Blaue geraten), also so:
>
> $this->foo = $_SESSION['foo'];
>
> So könntest du das Array über eine Session hinweg 'transportieren'.
>
> Also wie gesagt:
> * erst session_start();
> * dann Zugriff auf $_SESSION
>
Genau das habe ich im Beispiel gemacht. Oder wie ist das gemeint.
<code>
function start() {
        $this->setSomeData();

        session_start();

        $_SESSION['foo'] = $this->foo;
}
</code>

Habe  trotzdem mal die Sitzung im Konstrukt der Klasse initialisert
und es stimmt es funktionert. Doch zur meiner Schande, nachvollziehen kann ich 
das Verhalten aber immer noch :(

> HTH,	Andreas
MfG Dejan

php::bar PHP Wiki   -   Listenarchive