Übergabeproblem mit return

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

  • Übergabeproblem mit return

    Hallo allerseits,

    ich habe ein problem mit der übergabe einer Variable per return.

    Folgende Zeile ruft eine Funktion auf:

    PHP-Code:
    $time $this->getTimeBelegt($time$feiertag); 
    Die Funktion sieht so aus:

    PHP-Code:
    function getTimeBelegt($zeit$feiertag)
    {
            if(
    in_array($zeit$feiertag))
                {
                    
    $time = ((date("w"$zeit)) == 2) ? strtotime("next Thursday"$zeit):strtotime("next Tuesday"$zeit);
                    
    $this->getTimeBelegt($time$feiertag);
                }
            else
                {
                    
    //echo $zeit;
                    
    return $zeit;                
                }        

    bei dem auskommentiertem "echo" hat die Variable noch den richtigen wert, allerdings ist der wert am anfang beim aufruf der funktion futsch.
    Ich weiß nicht was ich da falsch gemacht hab...

    gruß,
    ranzi
    Die Milch bleibt ranzig!

  • #2
    PHP-Code:
    $this->getTimeBelegt($time$feiertag); 
    sollte doch bestimmt
    PHP-Code:
    return $this->getTimeBelegt($time$feiertag); 
    heißen, oder nicht?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ähm nein..
      sollte es?
      wieso?
      Die Milch bleibt ranzig!

      Kommentar


      • #4
        Probier's mal aus.

        Wenn's geht, überleg' dir bitte warum und erkläre es.
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          nein funktioniert nicht!
          die soll sich ja solange $zeit in $feiertage zu finden ist wieder aufrufen.
          also für august hats funktioniert weil da nur der dienstag n feiertag ist.
          aber im oktober zb. da is di und do hintereinander feiertag und dann springt des ganze auf do obwohl feiertag ist...

          edit: du meinst glaube ich das es klappt weil return die funktion abbricht oder? hmhm steh aufm schlauch
          Die Milch bleibt ranzig!

          Kommentar


          • #6
            PHP-Code:
            function getTimeBelegt($zeit$feiertag) {
              if (
            in_array($zeit$feiertag)) {
                
            $time date("w"$zeit) == 
                  
            strtotime("next Thursday"$zeit) : 
                  
            strtotime("next Tuesday"$zeit);
                return 
            getTimeBelegt($time$feiertag);
              } else {
                return 
            $zeit;                
              }        
            }

            $feiertag = array();
            $feiertag[] = mktime(0008152006);
            $feiertag[] = mktime(0001032006);
            $feiertag[] = mktime(0001052006);
            $feiertag[] = mktime(00010312006);

            $time mktime(0008152006);
            echo 
            date('d.m.Y'$time).'<br />';

            $time getTimeBelegt($time$feiertag);

            echo 
            date('d.m.Y'$time).'<hr />';

            $time mktime(0001032006);
            echo 
            date('d.m.Y'$time).'<br />';

            $time getTimeBelegt($time$feiertag);

            echo 
            date('d.m.Y'$time); 
            Ausgabe
            Code:
            15.08.2006
            17.08.2006
            
            03.10.2006
            10.10.2006
            Wenn ich den 05.10.2006 aus dem Feiertagsarray rausnehme (wie es richtig wäre), erhalte ich
            Code:
            15.08.2006
            17.08.2006
            
            03.10.2006
            05.10.2006
            Dein Problem kann ich also nicht nachvollziehen.

            Das return brauchst du auf jeden Fall, da du ja irgendwie das Ergebnis der rekursiv aufgerufen Methode zurückliefern musst
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              neuer tag keine probleme??

              also dein erster ansatz war irgendwie schon richtig.
              ich hab seit gestern abend nichts mehr verändert komme heute morgen an den rechner und es funktioniert....
              najo hab aber nu verstanden worauf du hinauswillst
              vielen dank

              gruß,
              ranzi
              Die Milch bleibt ranzig!

              Kommentar

              Lädt...
              X