Autor Zpráva
Sunucuu
Profil
Zdravím,

pro názornost jsem vytvořil tento mini kód, aby jste pochopili, co potřebuji. Jde mi o to, abych vypsal obsah $this->db v třídě General, které se naplní v třídě Database. Tzn, chci vypsat 'foo'...

Můžete mi, prosím, poradit, jak tento mini script upravit, abych dosáhl výsledku, který potřebuji? Důležité je, že hodnota 'foo' se přiřazuje až mimo třídu, což mi právě dělá problém... Kdyby to bylo uvnitř třídy tak by to bylo bez problému...

Děkuji.


Class Database {
public $db;

public function __construct ($idb){
$this->db = $idb;
}

}
$db = New Database('foo');

Class General Extends Database {

public function __construct () {
echo $this->db;
}

}

$general = New General();



btw, chtěl bych to řešit jinak než takto: (bez použití global)


Class General Extends Database {
public function __construct () {
global $db;
echo $db->db;
}

}
Nox
Profil
Ne že bych moc chápal smysl tohoto návrhu, ale...

Class General Extends Database {
    public function __construct (Database $db) { // Database může, ale nemusí být, vynucuje to třídu/rodiče argumentu
        echo $db->db;
    } 
}

$db = New Database('foo');
$general = new General($db);
Sunucuu
Profil
Děkuji, vyřešeno!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0