kostenloser Webspace werbefrei: lima-city


Funktion funktioniert nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    deutscher

    Kostenloser Webspace von deutscher, auf Homepage erstellen warten

    deutscher hat kostenlosen Webspace.

    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 &amp; MySQL';
    } elseif($trvar == 'html') {
    $ucat = 'HTML und CSS';
    } elseif($trvar == 'javascript') {
    $ucat = 'JavaScript';
    } elseif($trvar == 'java') {
    $ucat = 'Java &amp; 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 :confused:

    Kann mir jemand helfen?

    Greetz, deutscher


    Beitrag geändert: 9.8.2008 19:52:11 von deutscher
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. am Ende der Funktion wäre ein

    return $ucat

    gut
  4. Autor dieses Themas

    deutscher

    Kostenloser Webspace von deutscher, auf Homepage erstellen warten

    deutscher hat kostenlosen Webspace.

    Jaaaaaaaa! Kannst du mir vielleicht noch erklären was dieses return erreicht?
  5. 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
  6. Autor dieses Themas

    deutscher

    Kostenloser Webspace von deutscher, auf Homepage erstellen warten

    deutscher hat kostenlosen Webspace.

    Bedeutet das, dass Variablen, die in der Funktion erstellt wurden, außerhalb der Funktion gar nicht mehr verfügbar sind?
  7. 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
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!