Objekte und Funktion

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

  • #16
    Hehe, klar...

    Ich bin jetzt so weit gekommen:
    PHP-Code:
    <?php

    $aoLogos 
    = array();

    class 
    logo {
        var 
    $iId;
        
        function 
    logo($iId) {
            
    $this->iId $iId;
            
    $this->egal "egal".$iId-10;
        }
        function 
    zeigeID() {
            return 
    $this->iId;
        }
    }

    function 
    erstelleLogo($iId, &$ref_aoLogos) {
        
    $vorhanden false;
        for (
    $i=$i<count($ref_aoLogos) ; $i++) {
            if (
    $ref_aoLogos[$i]->zeigeID() == $iId) {
                echo 
    "schon da<br>";
                
    $vorhanden=true
                break;
            }
        } 
        if (
    $vorhanden == false) {
            
    array_push($ref_aoLogos, new logo($iId));
        }
    }


    // Die ersten drei Objekte
    $newLogo erstelleLogo(3,$aoLogos);
    $newLogo erstelleLogo(1,$aoLogos);
    $newLogo erstelleLogo(2,$aoLogos);

    // Hier würde als erstes ein Objekt doppelt erstellt. $vorhanden verhindert dies aber. 
    $newLogo erstelleLogo(1,$aoLogos);

    // Das Array wird sortiert.
    sort ($aoLogos);

    ?>
    Das Skript arbeitet gut. Ich wüsste nur gern warum mein Array richtig nach logo->iId sortiert wird? Wird es auch noch so sortiert, wenn es mehr Eigenschaften bekommt, nach denen theoretisch sortiert werden könnte?

    TODO:
    Die Suche in der FOR Schleife würde ich gern logaritmisch durchführen.

    Vielen Dank bisher,
    Stefan

    Kommentar


    • #17
      Original geschrieben von spy23
      Also:

      Es befinden sich viele Bilder in einer Datenbank. Jedem dieser Bilder sind Schlagworte zugeordnet.

      Wenn man die Seite betritt werden einige Bilder (die meist gesehnen, die neueste, etc.) angezeigt. Der User kann aber auch nach anderen Bildern suchen oder durch die Datenbank browsen.
      verstanden
      Für jedes angezeigt Bild soll ein Objekt erstellt werden, in dem alle relevanten Daten zu dem Bild gespeichert sind. (ID, Titel, die Posotion in den "Charts", ein generierter Downloadlink, etc.)
      warum? 100 user gleichzeitig haben sich 100 bilder angeschaut = 10000 objekte. häh?
      Einige dieser Eigenschaften sind nicht statisch und können deshalb nicht in der Datenbank gespeichert werden (Bestellnummer, Veränderungen).
      ich versteh nur bahnhof. ich würd' eine bestellnummer nur generieren, wenn der user was bestellt und nicht im "vorauseilenden gehorsam". und welche veränderungen sind "dynamisch"?
      Jeder User der Seite erzeugt somit Objekte, die nur für ihn gelten und auch persönliche Inhalte aufweisen (zum Beispiel die Bestellnummer).

      Wenn nun ein User die Startseite betritt, werden 12 Bildobjekte erzeugt und die Bilder werden angezeigt. Durchsucht er die Datenbank nach "Fussball", werden alle relevanten Fussball Bilder gezeigt. Ist aber eines der ersten 12 Startbilder schon ein Fussballbild, so soll dieses Objekt nicht erneut erzeugt werden.
      hatten wir schon
      Läd der User ein neue Seite, so soll das Array mit allen Objekten wieder zur Verfügung stehen. Dazu würde ich Sessions verwenden.
      ^^mein persönlicher tipp: streiche objekte, halte sessions. benutze die bild-id als schlüssel und lege in dem array die anderen informationen mit ab.
      Kissolino.com

      Kommentar


      • #18
        Ich bestehe keineswegs auf Objekte. Wenn es sinvoller ist darauf zu verzichten, dann lasse ich es auch.

        Also zurück.

        Kommentar


        • #19
          Für welche konkreten Besipiele lohnt denn der Einsatz von Objekten in PHP?

          Kommentar


          • #20
            Original geschrieben von spy23
            Für welche konkreten Besipiele lohnt denn der Einsatz von Objekten in PHP?
            ich weiss nicht, wie du "objekt" definierst. für mich ist es erstmal eine klasse in der oop. zum beispiel eine datenbank-klasse, die letztendlich alle handlungen rund um die datenbank-zugriffe verwaltet. solange das script läuft, sind eben alle werte innerhalb der klasse abrufbar (sofern abgelegt).

            in deinem fall könntest du
            - eine klasse usermanagement = 1 objekt
            - eine klasse datenbank = 1 objekt
            an eine klasse (=1 objekt) bildermanagement koppeln, um deine bilder anzuzeigen.

            im falle einer bestellung, könnte die klasse "shop" hinzukommen, die die gesamte bestell-/warenkorb-verwaltung handled. dazu eine klasse "payment", die den bestellvorgang abschliesst. für die anzeige/ausgabe hast du noch eine "template"-klasse, etc. pp. ... sumasumarum verschiedene einzelne objekte = klassen, die unterschiedliche aufgaben gekapselt verwalten und wahrnehmen und trotzdem miteinander agieren können.
            Kissolino.com

            Kommentar

            Lädt...
            X