27. november 2011 - 18:22Der er
17 kommentarer og 1 løsning
Hjælp til session set-funktion (php syntax)
Hej
Jeg er ved at lave en lille handy session-klasse, der lige pt. ser således ud: (se bunden af post).
Mit problem består i, at jeg i min set-metode med $k som array og $v forskellig fra null ikke vil sætte værdien i selve session, men i mit kopi $in. Jeg har bare lige sat det op for at vise hvad jeg vil frem til.
Meningen er at jeg skal kunne få samme effekt ved Session::set(array("a", "b"), "c"); som ved $_SESSION[a][b] = "c";
Nogle der er mega awesome og kan hjælpe mig her?
På forhånd tak! Caspar
class Session {
...
static public function set($k, $v = null) { if (is_array($k) and is_null($v)) { foreach ($k as $key => $value) { self::set($key, $value); } return; } elseif (is_array($k) and !is_null($v)) { $in = $_SESSION[self::get_key()]; foreach ($k as $foo) { $in = $in[$k]; } $in = $v; } else { $_SESSION[self::get_key()][$k] = $v; } }
static public function get() { $args = func_get_args(); $out = $_SESSION[self::get_key()]; foreach ($args as $arg) { $out = $out[$arg]; } return $out; }
Så forstår jeg ikke din kode. Prøv at skrive hele klassen og et eksempel på den måde, du prøver at bruge den
Synes godt om
Slettet bruger
27. november 2011 - 22:41#4
Du skal ikke fokusere på min get_key(), det er blot fordi der kommer til at køre flere projekter på serveren, og de så adskilles. Men du kan se her: http://pastebin.com/tpdJFddw
Jeg vil gerne komme frem til at jeg fx. i
$_SESSION[project-key][trin1][trin2] = "value";
Kan lave en Rtp_Session::set(array("trin1", "trin2"), "ny_value").
Det er også der den er gal, det var nu lidt for at fremvise hvad min hensigt er :-) Som det er nu, vil $in være et kopi af $_SESSION, blot med éen ændring, som er i netop:
Jeg vil jo gerne have gemt hele min oprindelige $in som session mit session-array. Men! Det løser min nuværende kode jo ikke, den sætter bare session-arrayet til at være lig $in som jo lige er blevet defineret til $v.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.