[OOP] Klasse in einer anderen Klasse verwenden

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

  • [OOP] Klasse in einer anderen Klasse verwenden

    Ich habe zwei Klassen und möchte nun die eine Klasse in der anderen Verfügbar machen.

    In der Index schaut es nun so:

    PHP-Code:
    <?php
    $class1 
    = new Class1;
    $class2 = new Class2;
    Class2 schaut so aus:

    PHP-Code:
    <?php
    class Class2 {
    function 
    Method1() {}
    function 
    Method2() {}
    Ich weiß schon, dass man jetzt in jeder Methode global $class1 schreiben könnte, aber das wäre doch sehr umständlich. Ist es nicht möglich, dass man alle Klassen in allen anderen Klassen verfügbar macht?
    [color=red]Meine Seite:[/color]
    American-Dad.de

  • #2
    Re: [OOP] Klasse in einer anderen Klasse verwenden

    Original geschrieben von Mra Ist es nicht möglich, dass man alle Klassen in allen anderen Klassen verfügbar macht?
    suchst du extends ?

    Kommentar


    • #3
      Du könntest sie doch als Parameter an die Methoden übergeben...
      Hat den Vorteil, dass es eine beliebige Klasse sein kann.

      Kommentar


      • #4
        Re: [OOP] Klasse in einer anderen Klasse verwenden

        Original geschrieben von Mra
        Ist es nicht möglich, dass man alle Klassen in allen anderen Klassen verfügbar macht?
        nein. siehe ZombieChes antwort.

        Kommentar


        • #5
          jetz nochmal gelesen: "Original geschrieben von Mra Ist es nicht möglich, dass man alle Klassen in allen anderen Klassen verfügbar macht?"

          wozu eigentlich dieser murks?

          Kommentar


          • #6
            Re: Re: [OOP] Klasse in einer anderen Klasse verwenden

            Original geschrieben von 3DMax
            suchst du extends ?
            Daran habe ich auch schon gedacht, jedoch wäre das auch sehr umständlich. Also gibt es nur die zwei Möglichkeiten, die Klasse als Parameter zu übergeben oder die Klasse bei jeder Funktion global zu machen?
            [color=red]Meine Seite:[/color]
            American-Dad.de

            Kommentar


            • #7
              wozu eigentlich dieser murks?
              Äußerst berechtigte Frage.
              Also gibt es nur die zwei Möglichkeiten, die Klasse als Parameter zu übergeben oder die Klasse bei jeder Funktion global zu machen?
              Ist das denn nicht genug. Ich denke mal, es wäre vielleicht auch möglich, sie als Superglobale in die Session zu schreiben
              Aber das eleganteste ist das garantiert nicht und es bleibt die Frage von 3DMax - bitte aufklären...

              Kommentar


              • #8
                Original geschrieben von 3DMax
                wozu eigentlich dieser murks?
                So wie es jetzt ist, muss ich die ganzen Klassen immer in Parametern übergeben. Wenn ich alle für alles verfügbar machen würde, dann wäre das weit leichter und übersichtlicher.
                [color=red]Meine Seite:[/color]
                American-Dad.de

                Kommentar


                • #9
                  nun werd doch mal konkreter, ich brenne vor neugier. was sind "die ganzen klassen"? was machen sie? wieviele sind das? wie übergibst du sie einander?

                  Kommentar


                  • #10
                    Original geschrieben von penizillin
                    nun werd doch mal konkreter, ich brenne vor neugier. was sind "die ganzen klassen"? was machen sie? wieviele sind das? wie übergibst du sie einander?
                    Ich arbeite bereits seit 1 1/2 Jahren an einem Projekt und habe immer mehr dazu und dazu programmiert. Leider habe ich aber da kaum etwas von PHP verstanden und deshalb ist jetzt der Code der reinste Sauhaufen. Deshalb will ich jetzt auch ein bisschem objektorientierter werden und ein paar Klassen erstellen, um Übersicht zu bekommen. Zurzeit habe ich zwar nur 3 Klassen, aber ich will in der nächsten Zeit noch viele dazu machen. Und da wäre es sehr umständlich, bei jeder neuen Klasse wieder überall die Parameter zu ändern.
                    Zurzeit werden sie noch gar nicht übergeben, da ich da irgendwie dann nicht weiter gekommen bin. Deshalb habe ich ja auch dieses Thema aufgemacht.
                    [color=red]Meine Seite:[/color]
                    American-Dad.de

                    Kommentar


                    • #11
                      Und da wäre es sehr umständlich, bei jeder neuen Klasse wieder überall die Parameter zu ändern.
                      und jetzt die entscheidende frage: warum muss jede klasse von allen anderen etwas wissen? welche klassen sind das denn nun?

                      Kommentar


                      • #12
                        Hi,

                        müssen sie mit sicherheit nicht. Der OP möchte sich gedanken darum
                        machen in welchem verhältnis die klassen stehen. Etwa in der form

                        foo ist ein bar
                        baz hat viele foobar
                        foobaz benutzt bazbar


                        Wenn du dir darüber im klaren bist kannst du dir überlegen wie man
                        das modelliert. Da sind die möglichkeiten vielfälltig.

                        greets
                        (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                        Kommentar


                        • #13
                          1. informier dich über UML, erlerne es und anschließend nutze es ...
                          2. schnapp dir einen zettel
                          3. schnapp dir auch einen stift
                          4. nun strenge dein hirn an und modeliere aufm papier was die klassen machen sollen und können müssen, was für methoden sie brauchen und welche variablen von nöten sind

                          dazu solltest du natürlich fundiertes Wissen in OOP in bezug zu PHP haben bzw. dieses wissen dir nach und nach aneignen
                          tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
                          documentation: php.net mysql.com framework.zend.com

                          Die Nachtwache!

                          Kommentar

                          Lädt...
                          X