function return

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • function return

    Hallo Zusammen

    Ich bin am verzweifeln, progge nun schon stunden an einem (für mich ) nicht logischen Problem.
    Ich habe eine Funktion in welcher mehrer Werte (hier 2) ausgelesen werden.
    Wenn ich nun zum Ende der function den erstellten String als echo ausgebe bekomme ich das richtigge Ergebnis, da ich aber eine Variable brauche mit der ich dann weiter arbeiten kann habe ich der Variablen ein return vorgestellt.

    Jetzt passiert das für mich unlogische, bei der Ausgabe der Variable erseint nur eine hälfte des String.
    Falsches Ergebniss - wird nur der baum nach else angezeigt
    PHP-Code:
    function pfadname($id_s$n)
    {
    include(
    "config.inc.php");
        
    $abfrage_funktion mysql_query("SELECT name_s, id_top from $spfad where id = '$id_s'");
        while (
    $row mysql_fetch_array ($abfrage_funktion)) 
        {
        
    $s_dir=$row["name_s"];
        
    $s_dir_top=$row["id_top"];
        }
        if (
    $s_dir_top != '' || $s_dir_top != 0)
        {
        
    pfadname($id$n +1);
        }
        if( 
    $n >= 2)
        {
        
    $baum .='/'.$s_dir.'/'
        }
        else
        {
        
    $baum .= $s_dir
        }
        return 
    $baum;
    }
    echo 
    pfadname(74,1); 

    Hier wäre die Anzeige korrekt mit beiden Werten
    PHP-Code:
    function pfadname($id_s$n)
    {
    include(
    "config.inc.php");
        
    $abfrage_funktion mysql_query("SELECT name_s, id_top from $spfad where id = '$id_s'");
        while (
    $row mysql_fetch_array ($abfrage_funktion)) 
        {
        
    $s_dir=$row["name_s"];
        
    $s_dir_top=$row["id_top"];
        }
        if (
    $s_dir_top != '' || $s_dir_top != 0)
        {
        
    pfadname($id$n +1);
        }
        if( 
    $n >= 2)
        {
        
    $baum .='/'.$s_dir.'/'
        }
        else
        {
        
    $baum .= $s_dir
        }
        echo 
    $baum;
    }
    pfadname(74,1); 
    Ich verstehe nicht warum ich den Werte der bei echo angezeigt wird nicht auch in der Variable der selbe ist.

    Kann mir da jemand helfen?
    Danke

  • #2
    Weil du den Rückgabewert von pfadname() nicht verwendest. Du rufst die Funktion einfach nur auf und PHP haut dann das Ergebnis weg, nachdem es eh nicht gebraucht wird.

    Kommentar


    • #3
      Ahh ja der erste Abruf! Danke jetzt ist es auch wieder logisch.
      Zuletzt geändert von sepp; 17.02.2017, 00:59.

      Kommentar

      Lädt...
      X