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

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

  • 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
    Last edited by Norad; 18-02-2005, 10: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>";
    ?>

    Comment


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

      Comment

      Working...
      X