Klasse mit 2 Attributen und nach Zuweisung mit gleichem Wert ...

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

  • Klasse mit 2 Attributen und nach Zuweisung mit gleichem Wert ...

    Hallo zusammen,

    ich stehe wahrscheinlich nur auf dem Schlauch, aber vielleicht ist es auch ein wenig mehr.

    Der Fall ist wie folgt. Ich habe eine Klasse definiert mit zwei Attributen und jeweils zwei Methoden zum Lesen und Setzen:

    PHP-Code:
    <?php
    class Tester {
    private 
    $testerStr1="";

    private 
    $testerStr2="";

    public function 
    getTesterStr1()
    {
      return 
    $this->$testerStr1;
    }

    public function 
    setTesterStr1($s1)
    {
     
    $this->$testerStr1 $s1;
    }

    public function 
    getTesterStr2()
    {
      return 
    $this->$testerStr2;
    }

    public function 
    setTesterStr2($s2)
    {
     
    $this->$testerStr2 $s2;
    }
    }
    ?>
    Nach dem Instanziieren in einem Skript, wie im folgenden Beispiel:

    PHP-Code:
    $test = new Tester;

    $test->setTesterStr1("Hallo Welt!");
    echo 
    "testerStr1: ".$test->getTesterStr1()."<br>";
    echo 
    "testerStr2: ".$test->getTesterStr2()."<br>";
    $test->setTesterStr2("Nochmal hallo Welt!");
    echo 
    "testerStr1: ".$test->getTesterStr1()."<br>";
    echo 
    "testerStr2: ".$test->getTesterStr2()."<br>"
    habe ich dann folgendes Phänomen:

    Beides mal wird der selbe Wert ausgegeben. Beim ersten Mal 2mal "Hallo Welt!" und dann 2 mal "Nochmal hallo Welt!".
    Wo liegt mein Problem oder Denkfehler. Vielen Dank schon im Voraus fuer Tips oder Infos.

    Grüße,

    Stefan
    Zuletzt geändert von Norad; 18.02.2005, 11:44.

  • #2
    Bitte das nächste mal wenigstens einen Quelltext ohne Bugs posten...

    du darfst nicht sowas machen:
    $this->$testerStr2 = $s2;

    sondern:
    $this->testerStr2 = $s2;

    PHP-Code:
    <?php
    class Tester {
        private 
    $testerStr1 "";
        
        private 
    $testerStr2 "";
        
        public function 
    getTesterStr1()
        {
          return 
    $this->testerStr1;
        }
        
        public function 
    setTesterStr1($s1)
        {
         
    $this->testerStr1 $s1;
        }
        
        public function 
    getTesterStr2()
        {
          return 
    $this->testerStr2;
        }
        
        public function 
    setTesterStr2($s2)
        {
         
    $this->testerStr2 $s2;
        }
    }

    $test = new Tester;

    $test->setTesterStr1("Hallo Welt!");
    echo 
    "testerStr1: ".$test->getTesterStr1()."<br>";
    echo 
    "testerStr2: ".$test->getTesterStr2()."<br>";
    $test->setTesterStr2("Nochmal hallo Welt!");
    echo 
    "testerStr1: ".$test->getTesterStr1()."<br>";
    echo 
    "testerStr2: ".$test->getTesterStr2()."<br>";
    ?>

    Kommentar


    • #3
      Danke für die schnelle Hilfe.
      Im Bezug auf die Quelltextangabe gelobe ich Besserung, aber das Orginal war zu groß und da habe ich schnell ein kleines Beispiel meines Problems erzeugt. Wahrscheinlich zu schnell.
      Der Quelltext ist bis auf das Problem korrigiert.

      Kommentar

      Lädt...
      X