Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Klasse mit 2 Attributen und nach Zuweisung mit gleichem Wert ... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Klasse mit 2 Attributen und nach Zuweisung mit gleichem Wert ...


 
Norad
18-02-2005, 11:32 
 
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
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:


$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

 
MoRtAlAn
18-02-2005, 11:45 
 
Bitte das nächste mal wenigstens einen Quelltext ohne Bugs posten...

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

sondern:
$this->testerStr2 = $s2;


<?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>";
?>

 
Norad
18-02-2005, 11:52 
 
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.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:04 Uhr.