Willkommen in der Webstatt Zum Webstatt Blog und Stories
sili sili am 26.02.07 15:22

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

<?php

class k1 {
public $v = ':-)';
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 :)

netcup.de Warum gibt es hier Werbung?
Snake am 26.02.07 15:38

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

was funktionieren würde:

<?php

class k1 {
public static $v = ':-)';
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 = ':-)';
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);

?>

sili sili am 02.03.07 19:06

Ach ja natürlich. Auf die zweite Möglichkeit hätte ich nun wirklich auch selber kommen können... Vielen Dank :)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt