Variable wird nicht initialisiert

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

  • Variable wird nicht initialisiert

    Hallo Forum

    Mein Problem ist eigentlich simpel, es geht um eine Variable die nicht initialisiert wird. Im Anhang findet ihr ein Zip vor, welches die "Problem-Dateien" enthält.
    Ausgeführt wird "ajax.map_bg_attack.php", und dabei kriege ich folgende Ausgabe:
    Code:
    <script> var mobarray=new Array();changefield(348,1); mobarray[] = '612: :';changefield(612,3); mobarray[1] = '613: :peasantmap.png';changefield(613,3); mobarray[2] = '614: :';changefield(614,3);placepictures(mobarray,true);</script>
    (Bitte stört euch nicht an der Formatierung - dafür ist es 1:1 das was ich erhalte.)

    Die erste Wertzuweisung von mobarray geschieht nicht auf mobarray[0] sondern mobarray[]. Das liegt irgendwie am "replacer.php", denn dort wird mobcounter mit 0 initialisiert und bei jedem Funktionsaufruf um 1 erhöht.

    Sollten weitere Beschreibungen, Dateien oder sonstwas benötigt werden lassts mich wissen.

    Vielen Dank im Voraus für Eure Hilfe!
    Onyx
    Angehängte Dateien

  • #2
    mobarray[] = 'wert' geht in JavaScript nicht und wirft einen Syntax Error. Entweder schreibst du mobarray[0] = 'wert' oder mobarray[mobarray.length] = 'wert'.

    Kommentar


    • #3
      Hallo h3ll

      Ja, das ist mir durchaus bewusst. Das ist ja auch der Fehler. Bitte lies die im ersten Post beschriebene Situation, da ist erwähnt, dass eben jener Fehler nicht auftreten sollte, sondern "mobarray[0] = wert" dastehen sollte. Ich hätte gerne herausgefunden, warum die PHP-Variable leer und nicht 0 ist.

      Aber trotzdem Danke für deine Antwort

      Gruss
      Onyx

      Kommentar


      • #4
        pack das $mobcounter = 0; in die Funktion. Und lass den Tinnef mit global. Da bekommst du nur Ärger mit.

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

        Kommentar


        • #5
          Hallo Kropff

          Das würde die Funktion des Scripts verändern. Dass $mobcounter ausserhalb der Funktion ist hat den Sinn, dass jedesmal wenn die Funktion ausgeführt wird $mobcounter um eins erhöht wird. Wenn ich $mobcounter in die Funktion mit reinnehmen würde, wäre $mobcounter jedesmal 0.
          Wie Du im File "1.php" sehen kannst wird die Funktion 4 mal benutzt, somit erhalte ich (durch $mobcounter) die Ausgabe des sich füllenden Arrays (mobarray).

          Danke für deine Antwort, hoffe auch weitere!
          Gruss
          Onyx

          EDIT: Was würdest Du denn anstatt global vorschlagen? $GLOBALS?
          EDIT2: Finde bei www.php.net/global keine Problembeschreibungen oder dergleichen. Hat bis jetzt bei mir seinen Zweck auch ganz gut erfüllt...
          Zuletzt geändert von Onyxagargaryll; 09.08.2009, 14:59.

          Kommentar


          • #6
            Warum musst du die Funktion viermal aufrufen? Das ist doch überflüssig wie ein Kropf. Arbeite mit einem(!) mehrdimensionalen Array und ruf die Funktion nur ein mal auf.

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

            Kommentar


            • #7
              Hallo Kropff

              Ja das wäre nat. ein alternativer Workaround. Werde den so einsetzen, wenn niemand mehr mit einer Lösung für mein Problem aufkommen sollte.
              Wäre weiterhin froh, wenn jemand eine Lösung/Begründung o.ä. zu dem global-Problem hat.

              Danke, Gruss
              Onyx

              Kommentar


              • #8
                Zitat von Onyxagargaryll Beitrag anzeigen
                Hallo Kropff

                Ja das wäre nat. ein alternativer Workaround. Werde den so einsetzen, wenn niemand mehr mit einer Lösung für mein Problem aufkommen sollte.
                Wäre weiterhin froh, wenn jemand eine Lösung/Begründung o.ä. zu dem global-Problem hat.

                Danke, Gruss
                Onyx
                Bei global verliert man sehr schnell den Überblick, welche Funktion welche Variable verändert. Und wenn du dann irgendwo mal einen Fehler hast, kannst du dich dumm und dämlich suchen.

                Ganz schlimm wirds, wenn du zwei Scripts/Projekte zusammen verwenden musst und beide die selben globalen Variablen verwenden und sich dann gegenseitig beeinflussen.

                Sowas sollte man von vorne herein vermeiden. Erfahrene Programmierer verzichten deswegen auf global, außer in speziellen Ausnahmefällen, wo es einfach nicht anders geht. Diese sind aber sehr selten und man sollte den Einsatz dann auch wirklich begründen können (Bequemlichkeit, etc. zählt nicht).

                Kommentar


                • #9
                  Ok, das mit der Gefahr verstehe ich. Gut dann werde ich die Funktion eben umschreiben.

                  Danke für die Hilfe, Gruss
                  Onyx

                  Kommentar

                  Lädt...
                  X