funktion in funktion undefiniertes array

Begonnen von lausbub, 25 Oktober 2007, 20:13:57

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

lausbub

hallo, ich habe zwei funktionen
die erste funktion soll den namen ermitteln und in ein array speichern.

in der zweiten funktion soll die erste funktion aufgerufen werden das ich über die werte in den array verfügen kann.

Jedoch bekomme ich die meldung, 
"Notice: Undefined variable: uname" und die Notice: "Undefined variable: name"


function tm_userdaten()
{
$userDaten=mxGetUserData();
$uname=$userDaten['uname'];
$name=$userDaten['name'];
$email=$userDaten['email'];
}

/* Usernamen und Nicknamen ausgeben */
function tm_name_nick()
{
tm_userdaten();
echo"<p><table width= 100% cellspacing=\"0\" cellpadding=\"0\">"
  . "  <tr>"
  . "    <td bgcolor=\"#ffffcc\">Hallo ".$uname."; </td>"
  . "  </tr>"
  . "  <tr>"
  . "    <td bgcolor=\"#ffffcc\">Pers&ouml;nliche Daten von ".$name."; </td>"
  . "  </tr>"
  . "</table></p>"
.""; 
}


kann mir bitte jemand weiter helfen?

gruß
thorsten
PHP Version: 5.2.11
MySql Version: 5.0.51a
Server-Version: Apache/2.2.8 (Linux/SUSE)
Pragma 1.12

bajazzo

ich wurde vermeiden eine Funktion als Wert einer Variable zu verwenden ;)

mxGetUserData();
$bla = $userinfo['tralala'];
Genie ist die grenzenlose Bereitschaft, sich Mühe zu geben.

siggi

innerhalb einer Funktion definierte Variablen sind ausserhalb der Funktion
nicht ansprechbar und haben ihren Gültigkeitsbereich nur in der Funktion.
mit global $foo; kann man sie quasi globalisieren.

Deine Funktion tm_userdaten() ist schlichtweg überflüssig.
Das Array aus mxGetUserData() sprichst du direkt in function tm_name_nick() an.
Mit extract() extrahierst du das Array.

Bsp:
Zitat
/* Usernamen und Nicknamen ausgeben */
function tm_name_nick()
{
$userdaten = mxGetUserData();
extract($userdaten);

echo"<p><table width= \"100%\" cellspacing=\"0\" cellpadding=\"0\">"
  . "  <tr>"
  . "    <td bgcolor=\"#ffffcc\">Hallo ".$uname."; </td>"
  . "  </tr>"
  . "  <tr>"
  . "    <td bgcolor=\"#ffffcc\">Pers&ouml;nliche Daten von ".$name."; </td>"
  . "  </tr>"
  . "</table></p>"
.""; 
}
Wenn man an Gras zieht wächst es auch nicht schneller.

lausbub

hi Siggi

jooo das schaut gleich viel besser aus als meine array`s klasse  ;)

besten dank  :thumbup:

gruß
thorsten
PHP Version: 5.2.11
MySql Version: 5.0.51a
Server-Version: Apache/2.2.8 (Linux/SUSE)
Pragma 1.12