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; }
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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.