Variablenproblem innerhalb einer Funktion

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

  • Variablenproblem innerhalb einer Funktion

    Hallo,
    seit 2 Tagen nun befinde ich mich mit meinem Script im Krieg, denn das will nicht so wie ich es gern hätte.

    Hier etwas vereinfachter:
    PHP-Code:
    <?php 

    // Via Get (page.php?action=insertform&wert1=12) wird die 
    // folgende Funktion abgerufen und ausgeführt

    function insertform ($wert1) {

    if (
    $wert1 == 12) {
    // Aus einer Datenbank wird $memcount (erfolgreich) mittels einer
    // Schleife gefüllt -> $memcount = 2
    } else {
    print 
    "is nich!";
    }

    function 
    selector_mem($option) {
    if (
    $option != $memcount) {
    return 
    "nö";
    } else {
    return 
    "jo";
    }
    }

    print 
    selector_mem('2');
    ?>
    Komischerweise wird "nö" ausgegeben - nur warum? Die Bedingung wird doch nicht erfüllt, wonach doch eigentlich "jo" folgen müsste?
    Kann mir jemand sagen wo das Problem ist? (auch $memcount in selector_mem() zu globalisieren ändert daran nichts!)

    Dankedankedankedanke

  • #2
    ich nirgends, dass die funktion insertform aufgerufen wird.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo Peter,
      ja das habe ich rausgelassen, da dies einwandfrei funktioniert. Wollte es halt vereinfachen.

      Hieße also:

      PHP-Code:
      if($_GET['action'] == insertform) {
      insertform($_GET['wert1']);

      Kommentar


      • #4
        $memcount ist in der Funktion unbekannt, daher ist der Vergleich immer true!

        Kommentar


        • #5
          Okay....das raff ich nicht. Weil ich es nicht globalisiert habe? Denn auch damit funzt es ja eben leider auch nicht.
          Oder gibt es da noch mir bislang verborgen gebliebene Wege?

          Thxxxx

          Kommentar


          • #6
            Was hälst du von Übergeben, als Parameter versteht sich

            1. Regel: Funktionen müssen in sich gekapselt sein, dass sie selbst nur mit ihren eigenen Variablen funktionieren, alles andere ist unfug. Also lass die Finger von Globalisierung!

            ... andere Regel werden irgendwann folgen

            Kommentar


            • #7
              Jo is richtig. Habe ich auch versucht, also ich hoffe das das richtig war?!:

              PHP-Code:
              selector_mem('2',$memcount); 

              Kommentar


              • #8
                Sieht nett aus, aber in Funktion-Header auch noch deklarieren wäre von Vorteil

                Kommentar


                • #9
                  hehe, ja klar, hatte ich auch gemacht, nur natürlich auch blöd, wenn man dadurch $memcount = $memcount setzt....dann kommt er natürlich nich klar mit.
                  also hab ich nun parameter $count = $memcount. nun funzts!



                  Danke an alle, vor allem meine Dummheit haha.....
                  (SELECT hirn FROM kopp WHERE zelle='gefüllt')

                  Kommentar


                  • #10
                    Danke an alle, vor allem meine Dummheit haha.....
                    (SELECT hirn FROM kopp WHERE zelle='gefüllt')
                    OffTopic:

                    The database returned no result

                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar

                    Lädt...
                    X