Klasse aufrufen nur wenn es zutrifft

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Klasse aufrufen nur wenn es zutrifft

    Guten Tag.

    Könnte ein wenig Hilfe gebrauchen. Ich habe eine Datenbank, die verschiedene Früchte beinhaltet. Diese Früchte teilen sich in Exotisch und Einheimisch.

    PHP Code:
    class Fruechte{
    var 
    $fruchtName;

        function 
    obstArt(){

    }
    }

    Class 
    Exotisch extends Fruechte{}

    Class 
    Einheimisch extends Fruechte {}

    Class 
    NichtEinheimisch extends Exotisch {} 
    Bis dahin bin ich gekommen und weiter geht’s irgendwie nicht mehr. Mit class Fruechte werde ich versuchen aus der Datenbank Fruchtname und ID zu holen, dann .. und genau da fängst an.

    Wie kann ich sagen, wenn Fruchtart=exotisch ist, dass die Klasse Exotisch gerufen wird? Wenn nicht exotisch ist, dann class Einheimisch.

    Geht so was

  • #2
    Wieso nicht nur eine Klasse Fruechte mit der Eigenschaft EInheimisch, Exotisch usw ?


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

    Comment


    • #3
      PHP Code:
      $fruchtart 'exotisch';

      $objekt = new $fruchtart(); 
      und
      PHP Code:
      $objekt = new exotisch(); 
      sollten das gleiche bewirken
      Ich denke, also bin ich. - Einige sind trotzdem...

      Comment


      • #4
        Vielen Dank.



        class Fruechte{
        var $name;
        var $code;

        function korb($namen, $codes){
        $this->name=$namen;
        return $this->code=$codes;

        }

        }

        class Exotisch extends Fruechte{

        var $namen;
        var $land;

        function furchart($wert){
        if ($wert!=4) {
        $this->istExotisch();
        }
        else {
        $this->istNichtExotisch();
        }

        }
        function istExotisch (){
        echo „Hier sind exotische Früchte“;
        }

        function istNichtExotisch (){
        echo "Einheimische Früchte";
        }
        }


        $start=new Exotisch;
        $wert=4;
        $start->korb("Mango",$wert);
        $start->fruchtart($wert);


        So funktioniert es. Aber er sind ja auch nur 2 Klassen. Ich möchte mehrer Klassen haben, damit ich üben kann. Abgesehen davon sollte für exotische und nicht exotische Früchte doch jeweils eine eigene Klassen gemacht werden oder nicht?


        Ich werde jetzt deine Variante, MrHappiness, testen.

        Comment


        • #5
          Abgesehen davon sollte für exotische und nicht exotische Früchte doch jeweils eine eigene Klassen gemacht werden oder nicht?
          Ist die Frage, wenn es wirklich um die besagten Früchte geht, dann würde ich dem Objekt einfach eine Eigenschaft "exotisch" oder "nicht exotisch" geben. wie glaube ich von Max schon vorgeschlagen.

          Comment


          • #6
            Hallo nochmal!

            Ihr kennt doch bestimmt folgende Aufrufsmoeglichkeit:

            class::function()

            Ist es empfehlenswert es auch in den folgenden Beispiel zu verwenden?:

            PHP Code:
            class Fruechte{
                
                function 
            fruechte(){
                if(
            $istEinheimisch=true){
                
            Einheimisch::ausgabe($istEinheimisch);
                }
                }
            }

            class 
            Exotisch extends Fruechte(){
                function 
            exotisch(){
                
                }

            }

            class 
            Einheimisch extends Fruechte (){

                function 
            ausgabe($istEinheimisch){
                echo 
            $this->istEinheimosch;

                }
                

            Ist es ok wenn man so weiterarbeitet, damit auch die erbenden Klassen einige $vars von der Mutterklasse bekommen koennen? Ich hab irgendwie das Gfuehl, dass so nicht sein sollte.

            Comment


            • #7
              Natürlich übernehmen die abgeleiteten Klassen Eigenschaften und Methoden. Sonst wäre das Konzept der Vererbung ja sinnlos
              "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

              Comment


              • #8
                hmm, zwar blicke ich das Ziel noch nicht so ganz. Verstehe aber nicht, warum du in früchte den static-Aufruf machst.,

                Wenn du die ausgabe() von Einheimisch nutzen willst, dann würde ich die fkt. wenn möglich direkt in Fruechte einbauen.

                Der Aufruf über static macht natürlich sinn, wenn du ausgabe() nicht in die Fruechte einbauen kannst/willst.

                Comment

                Working...
                X