Ik probeer een functie te schrijven welke 3 parameters accepteerd:
functie functienaam(reference $object, string $session_name, string $class_name);
Er wordt nu indien nodig een object aangemaakt en opgeslagen in een session variabele bij de naam $session_name. Ik wil nu in reference $object een referentie opslaan naar deze session variabele. Daar komt mijn probleem. Hij accepteerd het niet en geeft NULL terug. Toch moet het een reference worden, anders wordt er elke keer een nieuw object aangemaakt en gaan de gegevens verloren.
Dit is een test code die ik ervoor geschreven heb
Het is dus de bedoeling dat "$session_run = &$_SESSION[$session_name];" een werkende reference gaat bevatten. Global werkt namelijk ook niet.
functie functienaam(reference $object, string $session_name, string $class_name);
Er wordt nu indien nodig een object aangemaakt en opgeslagen in een session variabele bij de naam $session_name. Ik wil nu in reference $object een referentie opslaan naar deze session variabele. Daar komt mijn probleem. Hij accepteerd het niet en geeft NULL terug. Toch moet het een reference worden, anders wordt er elke keer een nieuw object aangemaakt en gaan de gegevens verloren.
Dit is een test code die ik ervoor geschreven heb
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| <?PHP class SessionTest { var $test; function SessionTest(){ $this->test = "Deze class wordt opgeslagen in een session"; return true; } function ChangeVar($text){ $this->test = $text; } } function startSession(&$session_run, $session_name, $class_name){ session_start(); if(!isset($_SESSION[$session_name])) $_SESSION[$session_name] = new $class_name; $session_run = &$_SESSION[$session_name]; } function endSession(){ if(session_id() != "") session_destroy(); return true; } startSession($login, "test", "SessionTest"); print $login->test."<bR>\n"; $login->ChangeVar("En ook nu is er een andere tekst"); print $login->test; ?> |
Het is dus de bedoeling dat "$session_run = &$_SESSION[$session_name];" een werkende reference gaat bevatten. Global werkt namelijk ook niet.
[ Voor 10% gewijzigd door telefoontoestel op 22-05-2004 22:16 ]
telefoontoestel