phpbar.de logo

Mailinglisten-Archive

[php] $this wird zu SESSION

[php] $this wird zu SESSION

Dejan Spasic php at d-down.de
Don Mai 19 18:16:46 CEST 2005


Hallo Liste!

ich habe auf einem Shared Hoster das die PHP4.3.3 Version noch einsetzt ein 
kleines Porb. Wenn ich in der Klasse bzw. Methode mittels session_start() 
eine Sitzung starte, wird spätestens beim zweiten aufruf der Seite $this mit 
den Inhalt der Sessoin überschrieben im schlimmesten Fall ist $this leer  
bzw. NULL!?  Starte ich die Sitzung ausserhalb der Klasse ist alles in 
Ordnung!?

<code>
class Foo {
    var $foo = array();
    
    function Foo() {}
    
    function setSomeData() {
        $this->foo = array(
            'Foo' => 'foo',
            'bar' => 'bar'
        );
    }
    
    function start() {
        $this->setSomeData();
        
        $tmpThis = print_r($this, true);

        session_start();

        print '<pre>';
        print($tmpThis);
        print '<br>';
        var_dump($this);
        print '</pre>';

        $_SESSION['foo'] = $this->foo;
    }
    
    function getFoo() {
        return $this->foo;
    }
}

$foo =& new Foo();
$foo->start();
</code>

<ausgabe>
foo Object
(
    [foo] => Array
        (
            [Foo] => foo
            [bar] => bar
        )

)

array(2) {
  ["Foo"]=>
  string(3) "foo"
  ["bar"]=>
  string(3) "bar"
}
</ausgabe> Ist es ein Bug!? Oder ist sitzt der Bug direkt vor dem Monitor ;)

php::bar PHP Wiki   -   Listenarchive