"We are back" « oc.at

php: konstanten als sessionvariablen mögllich?

kleinerChemiker 17.01.2005 - 14:09 540 4
Posts

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4328
kann ich eine konstante in einer session registrieren?
also z.b.

define('AAA', 123);
session_register(AAA);

ist AAA dann auf allen seiten verfügbar, solange die session aktiv ist?

tia

MIK
Bearbeitet von kleinerChemiker am 17.01.2005, 16:34 (solved)

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4515
Ohne zu testen: er versucht die globale Variable '123' zu registrieren, die nicht existiert. Du kannst nur Variablen in die Session speichern.

Besser: $_SESSION['some_constant_value'] = AAA;

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4328
naja, wenn ich ne variable registreiren will, schreib ich ja session_register($aaa).

deine möglichkeit ist ja dann im grunde auch nur eine session-variable, keine konstante mehr. aber wenn man konstanten nicht registrieren kann (Was nicht wirklich tragisch ist) mach ichs halt mit ner variable.

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4515
IMHO werden Konstanten nicht waehrend der Laufzeit evaluiert (jaja, vielleicht ists bei PHP anders, aber das ist dass, was ich als Konstante verstehen ;), darum wuerde dort dann stehen 'session_register(123);' was nix bringen wird.

Jedenfalls ist dein Beispiel "session_register($abc);" auch falsch, weil session_register den "Namen einer (globalen) Variable" haben will, was du gibst ist aber eine Variable selbst. Da wird dann der Inhalt von $aaa als "Name" fuer die globale Variable hergenommen. Von session_register ist einfach nur abzuraten, zumal die Uebernahme des Wertes der globalen Variable erst bei Beendigung des Scriptes erfolgt, bei $_SESSION dies aber sofort geschieht (weil es keinen globalen Kontext ausliest sondern direkt die uebergebenen Werte uebernimmt).

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4328
stimmt, ja. bei session_register ists ohne $. bei unset ists mit $.

thx
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz