Elternelement von Klasse

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

  • 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

    Comment


    • #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

      Comment


      • #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

        Comment


        • #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

          Comment


          • #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!!
            Last edited by 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

            Comment


            • #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

              Comment

              Working...
              X