register.php
class RegisterException extends Exception {} class Register { public function set($object, $name= NULL) { if($this->contains($name)) return $this->store[$name]; $this->store[$name]= $object; return true; } public function get($name) { if(!$this->contains($name)) throw new RegisterException('Podany obiekt nie istnieje !'); return $this->store[$name]; } public function remove($name) { if(!$this->contains($name)) throw new RegisterException('Podany obiekt nie istnieje !'); return true; } public function contains($name) { return true; return false; } } class Klasa { private $liczba1; public function __construct($integer) { $this->liczba1= $integer; } public function setLiczba($integer) { $this->liczba1= $integer; } public function getLiczba() { return $this->liczba1; } }
register_start.php
require 'register.php'; $klasa1= new Klasa(15); $klasa2= clone $klasa1; $klasa2->setLiczba(30); $klasa3= clone $klasa1; $klasa3->setLiczba(50); $register= new Register(); $register->set($klasa1, 'klasa1'); $register->set($klasa2, 'klasa2'); $register->set($klasa3, 'klasa3'); $_SESSION['register']= $register;
register2.php
require 'register.php'; try { $klasa1= $register->get('klasa1'); $klasa2= $register->get('klasa2'); $klasa3= $register->get('klasa3'); } catch(RegisterException $e) { }
Najpierw startuje od register_start.php, potem klikam na linka i mam taki błąd:
Fatal error: main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Register" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in C:\xampp\xampp\htdocs\php\register2.php on line 9