Elemente eines Arrays in einem Objekt zählen

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

  • Elemente eines Arrays in einem Objekt zählen

    Hallo,
    ich habe folgende Klasse (vereinfacht):
    PHP-Code:
    <?php
        
    class Form() {
            private 
    $elements;

            function 
    Form($action$name$method) {
                
    $this->elements[count($this->elements)]['name'] = $name;
                
    // das gleiche mit den anderen übergegebenen werten auch

                
    echo count($this->elements);
            }   
        } 
    ?>
    Die Ausgabe ergibt 4218 ???!!!

    Wie ist das mit Arrays innerhalb von Objekten, irgendwas kann doch da nicht stimmen, oder?
    Kennt jemand das Problem? Mussja zulösen sein!

    Danke schonmal!

    Johannes
    Zuletzt geändert von billiejoe90; 23.12.2006, 23:17.

  • #2
    ich sehe hier keine ausgabe und keine daten.

    Kommentar


    • #3
      Das ist ja egal... Es geht darum, dass die eigenschaft "elements" scheinbar nicht als Array angesehen wird...

      edit: "gettype($this-element)" gibt jedoch "array"aus...

      Kommentar


      • #4
        nein, das ist nicht egal. das, was du postest, ist noch nicht ein mal syntaktisch korrekt. dass es in diesem fall noch probleme gibt, ist klar.

        Kommentar


        • #5
          Sorry, aber ich weiß jetzt nicht ganz, was ihr von mir wollt^^
          Egal... ich formuliere die Frage etwas um, und bitte nur antworten, wenn ihr auf die Frage antworten wollt!

          Wie zählt man ein Array innerhalbeines Objektes?
          Geht das normalerweise mit "count($this->dasArray)" ?

          Danke!
          Zuletzt geändert von billiejoe90; 23.12.2006, 23:15.

          Kommentar


          • #6
            du stellst eine frage und belegst sie mit _garantiert_ fehlerhaftem code.
            was soll man dazu sagen? korrigiere doch wenigstens die fehler, damit der code lauffähig wird.

            ja, die funktion count() hängt nicht davon ab, wo sie ausgeführt wird.

            dieser code müsste übrigens einfach nur "1" ergeben.

            Kommentar


            • #7
              Ja, genau!
              Nur das Problem ist eben, dass ich sehr "komische" Ausgaben bekomme. Hier jetzt mal mein Code:

              PHP-Code:
              <?php
                  
              class Form {
                      private 
              $properties;
                      private 
              $elements;
                      private 
              $element_ids;
                  
                      
              // Konstruktor
                      
              function Form($name$action$method) {
                          
              $this->properties['name'] = $name;
                          
              $this->properties['action'] = $action;
                          
              $this->properties['method'] = $method
                                     
                      }
                      
                      function 
              addElement($type$name$title$value) {
                          
              $this->element_ids[$name] = count($this->elements);
                          
              $this->elements[count($this->elements)]['type']  = $type;
                          
              $this->elements[count($this->elements)]['name']  = $name;
                          
              $this->elements[count($this->elements)]['title'] = $title;
                          
              $this->elements[count($this->elements)]['value'] = $value
                          switch(
              $type) {
                              case 
              'select':   $this->elements[count($this->elements)]['tag']  = 'select';   break;
                              case 
              'textarea'$this->elements[count($this->elements)]['tag']  = 'textarea'; break;
                              default:         
              $this->elements[count($this->elements)]['tag']  = 'input';    break;
                          }      
                      }
                  }
              ?>
              Und wenn ich jetzt count($this->elements) ausgebe, kommen riesen Werte, wie eben z.B. "4218" oder auch "048".

              count($this->properties) ergibt allerdings 1 !

              Kommentar


              • #8
                dann zeig doch mal, was print_r() dazu sagt.

                Kommentar


                • #9
                  Ich bin ein totaler Idiot...
                  Ich hab den Fehler gefunden!
                  Fast zu peinlich, um ihn zu nennen

                  Ich rufe die Funktion 3x auf und deshalb werden 3x die count()-ergebnisse ausgegeben - ohne zeilenumbrüche ... (ich habs als ganze Zahl interpretiert)

                  Kommentar


                  • #10
                    Wenn das wirklich Array sind, warum teilst du PHP das nicht mit?
                    PHP-Code:
                    private $properties = array();
                    private 
                    $elements = array();
                    private 
                    $element_ids = array(); 
                    Wir werden alle sterben

                    Kommentar

                    Lädt...
                    X