php: konstanten als sessionvariablen mögllich?
kleinerChemiker 17.01.2005 - 14:09 540 4
kleinerChemiker
Here to stay
|
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
|
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
|
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
|
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
|
stimmt, ja. bei session_register ists ohne $. bei unset ists mit $.
thx
|