[PHP] Klassen und Referenzen

Peter

Lt. Commander
Registriert
Mai 2001
Beiträge
1.957
[PHP] - Klassen und Referenzen ...

PHP:
<?
	class Test
	{
		var $str = "";

		function Test( &$var) {
			$this->str = $var;
		}

		function Put() {
			echo "\n<br>" .$this->str;
		}
	};

	$string = "Null";
	$pTest =  new Test( $string);
	echo "\n<br>" .$string;
	$pTest->Put();
	$string = "Six";
	echo "\n<br>" .$string;
	$pTest->Put();
?>
Von einem C(++) Programm würde ich nun die Ausgabe - Null - Null - Six - Six - erhalten.
Nicht so in PHP; PHP produziert stattdessen - Null - Null - Six - Null -
Die Klasse bekommt die Änderung der Variablen nicht mit. Somit ist die im Konstruktor als Referenz übergebene Variable keine (echte) Referenz.
Ich habe auch schon versucht anstelle der Klassenkopie mit "$pTest = & new Test( $string);" eine direkte Referenz auf die Klasse zu erhalten, was allerdings auch mit 3x Null endet ...

Ist es mit PHP in dieser Weise überhaupt möglich obiges C++ - Verhalten nachzubilden?
 
Also in PHP4 ist dies noch nicht möglich, erst in PHP5.

Richtige Referenzen sind erst in PHP5 möglich, die erste beta gibts ja schon.
 
Sowas in der Richtung habe ich fast geahnt ;) Werde wohl auf ASP umsteigen :p
PHP:
function Test()
{
  $this->str = &$GLOBALS["string"];
}
Ist wohl die einzige Möglichkeit in einer Klasse etwas referenzähnliches zu basteln, wenn man nicht in jeder Fkt. mit 'global' rumspielen will :(
 
Oder eben auf PHP 5 warten, sollte eigentlich nicht mehr so lange dauern.
 
Würde ich, aber meine Deadline ist auf Mitte August festgesetzt worden. Ausserdem weiss ich nicht wie lange die PHP Entwickler den Betatest noch fortsetzen. Und bis die Webhoster dann endlich Pakete mit 5.x anbieten, gehen auch nochmal ein paar Tage ins Land :(
 
Stimmt, musst du wohl obige Lösung verwenden oder auf ASP umsteigen.
 

Ähnliche Themen

Zurück
Oben