Mailinglisten-Archive |
Hallo nochmal, heute kommt`s aber mal dicke ;-) Zwei Fragen: 1. Wenn ich ENV vars wie $PATH_TRANSLATED oder $REQUEST_METHOD in Funktionen verwende, muss ich sie auf global setzen, oder geht das mit getenv()? 2. Gibt es eine Möglichkeit über variable VariablenNamen die ENV VarNamen zu dynamisieren? Seit 4.1.0 sind die Namen dewr ENV vars ja gekürzt worden. Wenn ich jetzt ein versionsunabhängiges Script schreiben will sagen wir mal von 4.0.0 bis 4.1.0, kann ich dann so vorgehen? <beispielcode> if (ereg("^4\.1",phpversion())) : $arrName = "_".$REQUEST_METHOD; else : $arrName = "HTTP_".$REQUEST_METHOD."_VARS"; endif; if (!isset($$arrName) || (sizeof($$arrName) == 0)) : $this->programError("noVars"); else : $this->vars = $$arrName; endif; </beispielcode> Noch ein Anwendungsgebiet, wäre die php-session-konstante. Da diese ja (theoretisch) auch von Server zu Server variieren kann. Könnte man so etwas verwenden? <beispiel> $sidName = session_name(); $sName = $$sidName; if (!isset($sName) || empty($sName)) : srand((double)microtime()*1000000); $s_id = md5(uniqid(rand())); session_id($s_id); endif; session_start(); </beispiel> Die if()-endif; schreibweise bin ich mir gerade am abgewöhnen, also nicht schimpfen ;-) jedenfalls gibt: $sidName = session_name(); var_dump($sidName); $sName = $$sidName; var_dump($sName); nur "string(9)'PHPSESSID'" und "NULL" aus. Was ich auch nicht ganz verstehe. Wahrscheinlich hab ich das ganze variable Variablen Ding noch nicht kapiert. erklärt`s mir, bitte :-) danke & grüsse Henning
php::bar PHP Wiki - Listenarchive