PHP Objekt-Serialisierung und-Sitzungen

Wie ist es möglich, zu serialisieren, die sub-Objekte zu $_SESSION? Hier ist ein Beispiel, was ich versuche:

arraytest.php:

<?php

class ArrayTest {
    private $array1 = array();
    public function __construct(){
        $this->array1[] = 'poodle';
    }
    public function getarray(){
        return $this->array1;
    }
}

class DoDoDo {
   public $poop;
   public function __construct(){
        $poop = new ArrayTest();
    }
    public function foo()
    {echo 'bar';}
}

?>

Seite 1:

<?php
require_once('arraytest.php');
session_start();
$bob = new DoDoDo();
$_SESSION['bob'] = serialize($bob);
?>

Seite 2:

<?php
require_once('arraytest.php');
session_start();
$bob = unserialize($_SESSION['bob']);
$bob->foo();
print_r($bob->poop->getarray()); //This generates an error.
?>

Irgendwie wenn ich Deserialisieren das Objekt, das ArrayTest Instanz, die den Objekten zugewiesen ist $poop Eigenschaft in Seite 1 nicht mehr vorhanden, wie durch die Tatsache belegt, dass Seite 2 erzeugt einen schwerwiegenden Fehler, auf der markierten Linie:

Fatal error: Call to a member function getarray() on a non-object in Zeile 6

  • Schön Variablennamen.
  • Versucht, Sie zu ändern, als ich sah, Sie waren nicht politisch korrekt. Scheint ich nicht. Wird es nicht wieder tun.
  • Beispielhafte Beispiel-code; klare, präzise, genau die Art von Sache, die Sie suchen, wenn Sie die Beantwortung einer Frage. Ich bin froh, dass Sie nicht in der Lage, ändern Sie den Namen der Variablen.
Schreibe einen Kommentar