Matthias Jütte: Funktionsaufruf in Funktion

Beitrag lesen

Hallo Andreas!

Ich habe jetzt gerade die Lösung gefunden. Nochmal kurz zur Situation:

*** functions.php

function getSessVars ($sid, $varname) {
  if ($varname != "" ) {
    $andvar = " and varname = '$varname'";
  } else {
    $andvar = "";
  }

$sql = "select varname, varvalue from sessvars where sid = '$sid'" . $andvar;
  $ret = @mysql_query($sql);

$num=@mysql_num_rows ($ret);
  if ($num >= 0) {
    //
    // vars present
    //
    while($rs = mysql_fetch_row($ret)) {
      global $$rs[0];
      $$rs[0] = $rs[1]; <--- Hier wird automatisch der Variablenname generiert
    }
    return $num;
  } else {
    return false;
  }
}

*** index.php

function output() {
    getSessVars($sid, "variable");
}

Das klappt nicht.

Füge ich nun aber output() noch global $variable hinzu, dann läuft's. Daraus schließe ich, daß die Funktion sozusagen außerhalb output() läuft, wobei ich eigentlich vom Gegenteil überzeugt war.

Ist meine Beobachtung richtig? Wie kann man es evtl. eleganter lösen, so daß man direkt auf die Variable zugreifen kann, egal wie tief man sich in Subroutinen eingegraben hat?

Gruß

Matthias

--
ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
http://www.makaio.de/quotations