PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rferenzen als Klassen-Eigenschaft übergeben


Airwolf89
02.08.2011, 16:49:07
Hallo Leute,

kleine Frage, wenn ich folgende beiden Klassen habe:


class1 {
private $var;

public function _construct() {
this->var = 1;
}

public function foo() {
$a = new class2(this->var);
}
}



class2 {
private $otherVar;

public function _construct(&$a) {
this->otherVar = $a;
}
}


Was steht dann in otherVar aus Class2?

Habe ich dann darin die Referenz auf $var aus Class1 oder wird dann für Class2 eine Kopie angelegt? Es müsste doch eigentlich die Referenz drin stehen, oder?

Ich möchte damit ein Array, wo bestimmte Sachen drin stehen, welche für alle Klassen wichtig sind, auf diese Weise allen meinen Klassen verfügbar machen.

Während ich dass hier eben geschrieben habe ist mir zwar eingefallen dass ich das eigentlich mit ner eigenen Klasse machen kann =), was denke ich durchaus sinnvoller wäre, aber mich würde das Verhalten trotzdem mal interessieren.

Danke im voraus.

DokuLeseHemmung
02.08.2011, 16:57:48
Per default werden seit PHP5 alle Objekte per Referenz über geben. Zu PHP 4 und 3 Zeiten war clonen das default Verhalten.

Airwolf89
02.08.2011, 18:52:03
Hmm, du sagst alle Objekte werden per Referenz übergeben. Heißt das auch wenn ich in der Methode nicht das & davor schreibe werden die Objekte als Referenz übergeben oder wie ist das zu verstehen?

Aber danke schonmal.

DokuLeseHemmung
02.08.2011, 18:53:14
Genau!

Airwolf89
03.08.2011, 13:26:54
Danke erstmal.

Ist aber schon interessant. D.h. das & ist nur ein "Relikt aus alten Zeiten". Was würde ich dann machen wenn ich das explizit bei der Übergabe klonen will?

DokuLeseHemmung
03.08.2011, 13:45:55
Erstmal das Handbuch lesen!!!
http://www.php.net/manual/de/language.oop5.cloning.php