Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Klassenobjekt in Methode verwenden

Einklappen

Neue Werbung 2019

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

  • #31
    Hmmm, gut.
    Dann geht es wohl nur in zwei Schritten.

    Mit php beschäftige ich mich schon etwas länger,
    OOP habe ich mir aber erst jetzt näher angeschaut.

    Da ich mehrdimensionale Variablen scriptübergreifend brauche,
    und die 'Totsünde global' vermieden wollte bin ich der Spur 'nutze doch Klassen' nachgegangen. Leider nicht ganz mit dem Erfolg den ich sehen wollte, aber doch mit etwas mehr Klarheit
    Aber ehrlich gesagt sehe ich auch nicht das Problem darin, einfach Objekt A dem Objekt B irgendwo zu übergeben
    Es ist weniger ein Problem als die 'Faulheit' hier zwei Schritte zu machen; deswegen fragte ich nach, ob es da eine besondere Syntax gibt um innerhalb der Methode darauf zugreifen zu können.

    Ist ja nicht so, dass es in php die eine oder andere Syntax gibt, die sich direkt logisch ergibt bzw Allgemeingut ist.

    Kommentar


    • #32
      Naja es gibt strikte Regeln in PHP die angeben wann welche Variablen wo verfügbar sind, aus gutem Grund. Daher gibt es keine Möglichkeit zu sagen ich möchte exakt das Objekt haben was in der Variable hier und hier steht ... sowas gibts auch in anderen Programmiersprachen nicht. Du musst schon explizit sagen was du wo nutzen möchtest, alles andere würde sehr schnell dein Programm extrem unübersichtlich machen.

      Und auch wenn du Klassen und Objekte nutzt hast du immer noch das Problem mit globalen Werten, diese werden weiterhin irgendwie global verwaltet werden müssen, dafür gibt es dann z.B. die genannten Registry oder Singleton-Pattern die Objekte global zur Verfügung stellen.

      Kommentar


      • #33
        Zitat von Buhmann Beitrag anzeigen
        Also du _kannst_ das ganze unsauber lösen, indem du über
        Code:
        global $variable
        die Variable $variable in deiner Klasse verfügbar machst. Aber auf so einen Codingstil steht so in etwa die Todesstrafe.

        Gilt das jetzt nur für das Probelm oder generell? Wenn ich jetzt z.B. mein MySql verbindung darin speichere.

        LG Sonic

        Kommentar


        • #34
          Naja solche globals zu nutzen ist nicht gerade gut. Wenn irgendwo im Skript mal deine MySQL Verbindung überschrieben wird kommen lauter Fehler und es könnte sein das du ewig brauchst bis du den Fehler findest. Grad wenn mehrere Leute an dem Code arbeiten und nicht jeder weiß welche globals der andere grade benutzt kann das schnell mal passieren das sich was überschreibt.

          Daher sollten globale Objekte irgendwie über eine zentrale Schnittstelle verfügbar gemacht werden damit sowas nicht einfach beim benutzen von Variablen passiert.

          Kommentar


          • #35
            Dependency Injection wurde doch genannt, warum machst Du Dich nicht schlau?
            schon mal drüber nachgedacht, das ein ohne weitere Erklärung hingeworfener Wortfetzen wenig zielführend ist?
            Ich habe mich hier in einem php-Einsteiger-Forum zu Wort gemeldet, weil ich mit den einschlägigen Tutorials keine befriedigende Antwort gefunden habe.
            "Dependency Injection" About 280,000 results (0.28 seconds)
            ohne Worte..
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #36
              Zitat von Flor1an Beitrag anzeigen

              Daher sollten globale Objekte irgendwie über eine zentrale Schnittstelle verfügbar gemacht werden damit sowas nicht einfach beim benutzen von Variablen passiert.
              Stichwort: Registry Pattern.

              Kommentar

              Lädt...
              X