Webstatt.org - Community seit 2006 - 2012 (2024?)

Zwei Klassen "verknüpfen"

Avatar user-300
26.02.2007 14:22

Hallo. Ich versuche gerade zwei verschiedene Klassen ohne extends zu verknüpfen.

<?php

class k1 {
public $v = 'lächeln';
public function k1_get()
{
return $this->v;
}
}

class k2 {
public function __construct()
{
echo k1::k1_get(); // Funktioniert nicht
echo $k1->k1_get(); // Funktioniert nicht
}
}

$k1 = new k1;
$k2 = new k2;

?>


Was muss ich in den Zeilen 14 oder 15 verändern, damit ich von K2 auf die Daten von K1 zugreifen kann?

Es geht um eine Datenbank Klasse welche quasi absolut verwendet werden sollte. Sie soll von verschiedenen anderen Klassen ohne eigentlich Verknüpfung verwendet werden können. Wie erreiche ich das am besten?

Danke für Hilfe lächeln

user-303
26.02.2007 14:38

weil du mit $this ja auf ein object zugreifen willst.

was funktionieren würde:

<?php

class k1 {
public static $v = 'lächeln';
public function k1_get()
{
return self::$v;
}
}

class k2 {
public function __construct()
{
echo k1::k1_get(); // Funktioniert
}
}

$k1 = new k1;
$k2 = new k2;

?>


wobei du nun drauf achten musst, dass durch das 'static' jede instanz der klasse immer auf den selben speicher zeigt.
andere möglichkeit:
<?php

class k1 {
public $v = 'lächeln';
public function k1_get()
{
return $this->v;
}
}

class k2 {
private $k1;
public function __construct($k1)
{
$this->k1=$k1;
echo $this->k1->k1_get(); // Funktioniert
}
}

$k1 = new k1;
$k2 = new k2($k1);

?>

Avatar user-300
02.03.2007 18:06

Ach ja natürlich. Auf die zweite Möglichkeit hätte ich nun wirklich auch selber kommen können... Vielen user-158k lächeln