Verwendung von "function"... oder doch nicht?

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

  • Verwendung von "function"... oder doch nicht?

    Tag!

    Vorab: Da ich noch relativ neu bin im php-Coding, stelle ich Euch mal hier mein Problem vor, unten die Fragen:

    Hier mal mein Programm-Code (Auszug):

    PHP-Code:
    <?php

    /* Deklaration */

    $startdatum $_POST['startdatum'];

    /* Validierung der eingegebenen Daten */
                                
                /* 1. Startdatum */
                
    $array_startdatum split('[./-]'$startdatum);
                            
                
    $Jahr $array_startdatum[0];
                
    $Monat $array_startdatum[1];
                
    $Tag $array_startdatum[2];
                     
                                        
                
    /* 1.1 Startdatum darf nur Zahlen enthalten */
                
    function startdatum1($Jahr,$Monat,$Tag){
                    if (
    ereg('([a-z])'$Jahr))
                                echo 
    "Ungültiges Startjahr: " $Jahr;
                                else if (
    ereg('([a-z])'$Monat))
                                            echo 
    "Ungültiger Startmonat: " $Monat;
                                            else if (
    ereg('([a-z])'$Tag))
                                                        echo 
    "Ungültiger Starttag: " $Tag;
                                                        else 
    true;

    if ((
    startdatum1)==true)
                            echo 
    "super";
                                else echo 
    "nicht super";
    Jetzt mal meine Fragen:
    Es geht eigentlich um das letzte "else" in der "function" und um die Verwendung der "function" ansich.

    Würde gerne, wenn alles soweit richtig ist, mir sowas wie true zurückgeben lassen, da ich noch mehrere andere Prüfungen haben und nur wenn alle "true" sind, soll ein File geschrieben werden. Gehe ich da mit "function" richtig dran?

    In diesem Zusammenhang steht auch das "else". Wenn alles richtig ist, soll halt true rauskommen.

    Da ich die weiteren Prüfungen (sowas wie Zeitabgleich etc.) nicht mit immer neu eingeleiteteten if-Abfragen klammern möchte, sondern eher eine gewissen Anzahl an Prüfroutinen haben möchte, die ich dann zentral am Ende einmal abfragen möchte - in etwa so:

    PHP-Code:
    if (startdatum1 == true && xyz == true && abfrage87 == true)
    write file
    Kann mir einer möglicherweise folgen und sogar helfen / Tipps geben?

    Wäre dafür dankbar!

  • #2
    Hi,

    es ist im prinzip einfach. Es gibt das schlüsselwort return
    mit dem du der funktion einen rückgabewert verpassen kannst.
    Wenn du das nun einsetzt um true/false zurück zu geben dann
    kannst du später auch deine funktionen auf die von dir
    vorgschlagene weise als if-kriterium verwenden.

    greets
    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

    Kommentar


    • #3
      als war der ansatz mit benutzung von function schon in ordnung und zielte in die richtige richtung?

      kleines problem hab ich aber immer noch mit dem code...

      PHP-Code:
                  function startdatum1($Jahr,$Monat,$Tag){
                      if (
      ereg('([a-z])'$Jahr))
                                  echo 
      "Ungültiges Startjahr: " $Jahr;
                                  else if (
      ereg('([a-z])'$Monat))
                                              echo 
      "Ungültiger Startmonat: " $Monat;
                                              else if (
      ereg('([a-z])'$Tag))
                                                          echo 
      "Ungültiger Starttag: " $Tag;
                                                          else return 
      true;
                              } 
      arbeite ich mit function, wird mir bei einer fehleingabe wie zb. 2000-xx-12 keine fehlermeldung ausgegeben.

      lasse ich function weg, erscheint meine fehlermeldung (bei gleicher falscher eingabe).

      Zuletzt geändert von cemeinz; 26.04.2006, 12:22.

      Kommentar


      • #4
        Hi,
        jupp das ist imho der richtig ansatz. Die ausgaben in den
        funktionen würde ich noch rausnehmen. Wenn du unbedingt
        eine fehlerbeschreibung brauchst gibt es bessere möglichkeiten,
        die dir nicht wild in dein (späteres) layout schreiben.

        greets
        (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

        Kommentar


        • #5
          sorry closure, hatte noch was editiert

          kann mir vielleicht einer weiterhelfen?

          arbeite ich mit function, wird mir bei einer fehleingabe wie zb. 2000-xx-12 keine fehlermeldung ausgegeben.

          lasse ich function weg, erscheint meine fehlermeldung (bei gleicher falscher eingabe).
          Zuletzt geändert von cemeinz; 26.04.2006, 13:32.

          Kommentar


          • #6
            bin mal so frei und schubse es nochmal hoch *man möge mir verzeihen und nicht zum scheiterhaufen ziehen*

            Kommentar


            • #7
              Lass das Drängeln bitte!


              Wie sieht dein aktueller Code aus, und wo liegt der Unterschied "mit" und "ohne" Funktion?

              closures Hinweis, dass du Fehlermeldungen besser nicht gleich innerhalb der Funktion rauspusten solltest, hast du den berücksichtigt?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                .. und mal so am Rande :
                hast du den Code so grauenhaft eingerückt, oder ists beim posten passiert..
                ganz ehrlich .. die "elseif"s tiefer einzurücken als das (else)if zuvor
                scheint mir aus allen vorstellbaren Gründen schlecht....
                Naja, ist zwar nicht wichtig, aber ich denke ich bin nicht der einzige,
                der bei sowas einfach keine Lust hat, den Code zu lesen....

                no offense...


                btw 2 gedanken:
                1) debugging ausgaben in der funktion.... so kommst du darauf wann was wie aussieht

                2) hast du dich mal gefragt, ob der fehler wirklich in der funktion ist,
                oder im funktionsaufruf.. du musst ja aus dem xxxx-xx-xx immerhin 3 strings machen.. naja das kannst du checken indem du einfach mal am anfang der funktion schaust, welchen wert die variablen haben ....
                Zuletzt geändert von shapeless; 26.04.2006, 14:31.

                Kommentar

                Lädt...
                X