Funktion funktioniert nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
aufruf
bekannte fehler
bereich
club
code
deutscher beitrag
deutscher schrieb
ende
folgenden funktion
forum
funktion
gelten
jemand
melde
nutzen
problem
promotion
report
support
-
Hi,
ich schreibe gerade ein kleines Board und verzweifle an der folgenden Funktion:
<?php function rcat($trvar) { if($trvar == 'news') { $ucat = 'News'; } elseif($trvar == 'club') { $ucat = 'Club-Bereich'; } elseif($trvar == 'errors') { $ucat = 'Bekannte Fehler/Probleme'; } elseif($trvar == 'fwdl') { $ucat = 'Forum, Wiki, Download-Center'; } elseif($trvar == 'report') { $ucat = 'Fehler melden'; } elseif($trvar == 'support') { $ucat = 'Support'; } elseif($trvar == 'php') { $ucat = 'PHP, Perl, Python & MySQL'; } elseif($trvar == 'html') { $ucat = 'HTML und CSS'; } elseif($trvar == 'javascript') { $ucat = 'JavaScript'; } elseif($trvar == 'java') { $ucat = 'Java & Flash'; } elseif($trvar == 'sonstiges') { $ucat = 'Sonstiges'; } elseif($trvar == 'promotion') { $ucat = 'Website vorstellen'; } elseif($trvar == 'offtopic') { $ucat = 'Off-Topic'; } elseif($trvar == 'spam') { $ucat = 'Spam-Forum'; } } ?>
Also, wenn jetzt $mthread1id 'spam' ist, soll nach Aufruf von rcat($mthread1id); $ucat 'Spam-Forum' sein. Aber irgendwie ist $ucat danach garnix
Kann mir jemand helfen?
Greetz, deutscher
Beitrag geändert: 9.8.2008 19:52:11 von deutscher -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Jaaaaaaaa! Kannst du mir vielleicht noch erklären was dieses return erreicht?
-
return ist der Rückgabewert der Funktion, das bedeutet, wenn du sagst
$a = funktion();
würde $a der Rückgabewert der Funktion zugewiesen. Wenn in dieser Funktion "return 5;" steht, hätte $a also den Wert 5.
Du kannst den Rückgabewert aber auch so nutzen:
echo "Ergebnis " . funktion();
hier wird der Rückgabewert der Funktion über echo ausgegeben.
Wichtig ist, dass Quelltext, der hinter dem Return steht, nie ausgeführt wird! Die Funktion bricht bei return; ab.
ps3web -
Bedeutet das, dass Variablen, die in der Funktion erstellt wurden, außerhalb der Funktion gar nicht mehr verfügbar sind?
-
Mal davon abgesehen, dass, wie schon erwähnt, ein "return" fehlt, finde ich deine Funktion ziemlich sinnlos.
Stell das ganze doch mit einem assoziativen Array an:
<?php $array = array( "news" => "News", "club" => "Club-Bereich", "errors" => "Bekannte Fehler/Probleme" } //usw. $ucat = (array_key_exists($trvar,$array)) ? $array[$trvar] : NULL; ?>
Das ist effizienter und leichter anzupassen.
deutscher schrieb:
Bedeutet das, dass Variablen, die in der Funktion erstellt wurden, außerhalb der Funktion gar nicht mehr verfügbar sind?
Ja. Variablen, die in einer Funktion verwendet werden, sind nur temporär gültig, also gelten nur in der Funktion selbst.
Du kannst aber eine außerhalb der Funktion definierte Variable mittels "global $foo" innerhalb der Funktion nutzen.
gruß
ferdinand24
Beitrag geändert: 9.8.2008 20:11:19 von ferdinand24
Beitrag geändert: 9.8.2008 20:12:20 von ferdinand24 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage