arrayübergabe an class

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

  • arrayübergabe an class

    hallo allerseits,

    hab zwar schon einiges mit php umgesetzt, mit "klassen" aber noch keine erfahrung. wäre schön wenn ich einen ansatz bekommen könnte.

    zur erstellung eines diagramms nutze ich die class phPie.
    diese class beinhaltet die variable "var $data" als array welche die
    daten des späteren diagramms erhält.

    PHP-Code:
    class phPie {    // START class

    var $data = array('1'=>'40','2'=>'60','3'=>'80','4'=>'100');

    //...weitere einträge in der class
    }    // ENDE class 

    so klappt auch alles wunderbar.

    nur, wie kann ich das array "var $data" bereits ausserhalb der class über eine
    datenbankabfrage bilden und diese dann der class phPie übergeben??

    hab schon einiges versucht und komme nicht aufs gewünschte ergebnis.
    z.b. so:

    KLAPPT NICHT (vor der class)
    PHP-Code:
    $query mysql_query("SELECT id,num FROM test");

    while (
    $row mysql_fetch_array ($query)) {    // START WHILE

    $data[$row[id]] = "$row[num]"

    }    
    // ENDE WHILE

    class phPie{
    var 
    $data = array($data);

    hat jemand einen hinweis oder ansatzpunkt für mich?
    thx gaudi

  • #2
    schon mal was von get und set methoden gehört?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      häh,

      meinst du die SET zum datenypkonvertieren und die get zum datentypen bestimmen? oder welche meinst du?

      werd aus deinem hinweis nicht so richtig schlau

      gaudi

      Kommentar


      • #4
        Kennst du den Sinn von Klassen und Objektorientierung?

        Du musst das Array an die Klasse übergeben (siehe MelloPie) oder beim Erstellen des Objekts im Konstruktor mit initialisieren ...

        Also sowas in der Art:

        PHP-Code:
        class phPie{
        var 
        $data;
        function 
        setData($array_data) {
            
        $this->data $array_data;
        }

        EDIT:
        Wieso macht das Forum immer zusätzliche Leerzeilen in der PHP Umgebung bei mir

        Kommentar


        • #5
          joa dann lies Dich mal in oo programmierung ein
          eine set methode ist dafür da eine klassenvariable zu setzen.
          eine get methode gibt den wert zurück.
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            nun...

            ...ich hatte wohl geschrieben, dass ich noch keine erfahrung mit klassen, und somit auch oo proggen habe.

            aber thx für die antworten, hab jetzt einen ansatzpunkt der mir wohl ausreichen wird mein problem zu lösen und mich weiter schlau zu machen

            trotzdem wäre eine mini erklärung schon schön gewesen.

            thx und gruß
            gaudi

            Kommentar


            • #7
              OffTopic:
              Kauf Dir...

              Lehrbuch der Objektmodellierung



              ISBN 3-8274-0285-9

              von hier Link
              _____________
              Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
              [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

              Kommentar


              • #8
                Re: nun...

                Original geschrieben von gaudi

                trotzdem wäre eine mini erklärung schon schön gewesen.

                thx und gruß
                gaudi
                Man kann die Objektorientierung leider nur schlecht in eine Mini-Erklärung verpacken

                Kommentar


                • #9
                  also,...

                  ...da ich jetzt kein buch mehr bekomme und auch sonst keine andere möglichkeit habe...
                  ...es wäre lieb wenn ihr euch das trotzdem noch einmal anschauen könntet. ich benötige nachher die "var $data" als array (siehe code).

                  dies ist mein augenblicklicher source:

                  PHP-Code:
                  $query mysql_query("SELECT id,num FROM test");
                  while (
                  $row mysql_fetch_array ($query)) {    // START WHILE
                  $array_data[$row[id]] = "$row[num]"
                  }    
                  // ENDE WHILE


                  class phPie {

                  var 
                  $data;

                  function 
                  setData($data) {                      //für die var $data der class ???
                      
                  $this->data $array_data;               // aus der abfrage ???
                  }

                  // DIESEN INHALT BRAUCHE ICH (ist hier der originalcode
                  ):
                  //    var $data = array('1'=>'40','2'=>'40','3'=>'60','4'=>'80');    
                   
                      
                  var $width             500;   // width of generated image, in pixels
                      
                  var $height            300;   // height of generated image, in pixels
                      
                  var $CenterX           false// defaults to round($width / 2) 
                  ....weiter in der class

                  aber irgend etwas stimmt hier immer noch nicht *sniff*

                  gruß gaudi

                  Kommentar


                  • #10
                    PHP-Code:
                    class phPie {
                    var 
                    $data;
                    function 
                    setData($array_data) {     //das das uebergebene Array
                        
                    $this->data $array_data;      //das ist die Klassenvariable die mit dem
                                                        //uebergebenen Array gefuellt wird 
                    }
                    }
                    $data = array('1'=>'40','2'=>'40','3'=>'60','4'=>'80');

                    // Objekt instantiieren    
                    $pieObject = new phPie();

                    // $data Array an Objekt uebermitteln
                    $pieObject->setData($data); 

                    Kommentar


                    • #11
                      jetzt klickerts,...

                      ... dann kann ich also erst nach dem schließen der class phPie das objekt instantiieren, richtig?! und sozusagen "nachträglich" eintragen bzw. übermitteln, oder geht es auch innerhalb der laufenden class?

                      mist, soweit ich gesehen habe greift er schon in der class phPie auf dieses ($data) array zu. werd noch mal schauen.

                      thx BlobBanana

                      gruß gaudi

                      Kommentar


                      • #12
                        Eine Klasse ist eine Art Bauplan für Objekte.
                        Der Informations-austausch mit einem Objekt sollte nur über Methoden stattfinden und nicht über direkten Zugriff auf die Variablen (->Datenkapselung)

                        In deinem Beispiel macht die Anwendung eines Objekts auch noch keinen Sinn ...

                        Kommentar

                        Lädt...
                        X