Elternelement von Klasse

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

  • Elternelement von Klasse

    Hi
    hab eine frage zu klassen in PHP
    und zwar hab ich als Objekt (heisst das so?) einer Klasse eine instanz einer anderen Klasse
    PHP-Code:
    $this->ding= new ding
    kann ich jetzt wenn ich mit
    PHP-Code:
    $ueberding->ding->funktion(); 
    eine Funktion der Klasse ding aufrufe

    so ist in dieser Funktion ja
    PHP-Code:
    $this $ueberding->ding
    Nun meine Frage

    Wie kann ich mich in der Funktion nur mit ding irgendwlche Dinge anstellen?
    also ohne das $ueberding davor??

    Hoffe ihr versteht was ich nicht versteh

    danke
    Gruss
    eckhard
    ich bin Toxical, und werd es auch bleiben

  • #2
    Mit $this. $this zeigt immer auf das aktuelle Objekt.
    Dabei spielt es keine rolle ob das Objekt eine Objektbvariable eines anderen Objektes ist:

    Beispiel:

    PHP-Code:
    $zug = new zug();
    $zug->waggon[0] = new waggon();
    $zug->waggon[0]->einladen();

    echo 
    $zug->waggon[0]->showLadung();

    class 
    waggon
    {
    var 
    $ladung "";
    // ...
    function einladen()
    {
    // tu was.
    $this->ladung "5 kg getreide";
    }

    function 
    showLadung()
    {
    return 
    $this->ladung;
    }
    // ...

    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      Hm das hab ich mir so auch gedacht...Aber es geht nicht, wer hätte es gedacht?

      folgender Aufruf:
      PHP-Code:
      $editor->fields["select"]["the_feld"]->set_options(); 
      nun müsste ja in der Funktion set_options unter $this der array $editor->fields["select"]["the_feld"]
      stehen, oder?

      Nur wenn ich jetzt den array verwenden will, so:
      PHP-Code:
      function set_options()
          {
          
      $type array_keys($this);
      //..
      //..

      , kommt immer folgender fehler
      Warning: First argument to array_keys() should be an array in C:\wampp2039\htdocs\Editor\class\field.obj on line 8
      weiss nich wodran das liegt, beo klasse hab ich echt noch nachholbedarf


      trotzdem erstmal Vielen dank für diew Mühe & Antwort.
      ich bin Toxical, und werd es auch bleiben

      Kommentar


      • #4
        Wichtig: $this ist eine Referenz ! Eine Referenz auf das Objekt !!

        Kein String oder Array !!
        Du willst den Variablennamen haben ?
        Den musst du schon übergeben oder sowas.
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar


        • #5
          ja, klar eine referenz, aber ich muss doch trotzdem wie ein array behandeln können, wenn die referenz auf ein array zeigt oder?

          Gibt es da kein work-around?
          ich muss doch eine klassen funktion auf ein array anwenden können...*schnüff* das wirft meine ganze vorstellung von klassen über den haufen...

          aber trotzdem danke für die erklärung
          ich bin Toxical, und werd es auch bleiben

          Kommentar


          • #6
            Nein. Eine Referenz ist ein Zeiger auf einen Speicherbereich.
            Das ist kein Array !! Und der Zeiger zeigt auch nicht auf einen Array sondern auf ein OBJEKT !!!!!!!
            Begreifs doch endlich ! Eine Referenz ist keine normale Variable !

            Übergebe den Array halt oder machs global oder als referenz,
            anderes gehts nicht. $this ist kein Array!!
            Zuletzt geändert von Troublegum; 28.07.2002, 20:09.
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              ok $this ist eine referenz auf ein objekt, hab's geraffelt
              Aber dieses Objekt liegt in einem Array, hehe, und wie kann ich jetzt überprüfen in welchem array das Objekt liegt?

              PHP-Code:
              $editor->fields["select"]["test_feld"] = new field;
              $editor->fields["select"]["test_feld"]->function(); 
              nun leigt das Objekt ja in dem Array
              PHP-Code:
              $editor->fields["select"
              oder?
              (sorry, wenn ich's immer noch nich gechecked hab)

              Und nun will ich eben wissen wie dieser array heist wo es drin liegt?

              Aslo wenn es im Array
              $editor->fields["select"] liegt, will ich"select" rauskriegn, logisch?

              Ach, mei bin ich heut wieder dumm wie brot

              Schönen Abend noch
              Eckhard
              ich bin Toxical, und werd es auch bleiben

              Kommentar

              Lädt...
              X