Autor | Zpráva | ||
---|---|---|---|
deter Profil |
#1 · Zasláno: 26. 6. 2008, 21:23:43
Zdravím,
mám třídu db, která obsluhuje funkce spojené s databází. Ta je využívána v mnoha dalších třídách, jenže problém je ten, že instanci třídy db musím pokaždé vytvořit v té metodě (jiné třídy), v které ji chci použít. Takže používám např třídu user, v jejímž konstruktoru chci objekt vytvořit a v různých metodách třídy user ho využívat, jenže to nejde, vždy to vypíše Call to a member function ....neco() on a non-object Je tedy vytvareni instance tridy v konstruktoru jine tridy, v ktere bych ji chtel globalne pouzivat, nesmysl? Nebo jen neco delam spatne? |
||
ShiraNai7 Profil |
#2 · Zasláno: 26. 6. 2008, 21:26:56
Definuješ třídu, vytvoříš a uložíš její objekt do pole $GLOBALS a pak můžeš k tomu objektu přistupovat odkudkoliv.
|
||
deter Profil |
#3 · Zasláno: 26. 6. 2008, 21:28:00
ok, rychlovka :) díky
|
||
srigi Profil |
#4 · Zasláno: 26. 6. 2008, 22:02:00 · Upravil/a: srigi
Za bezpecnejsie a korektnejsie sa povazuje predavanie objektu cca takto
class db { // some variables public function query($command) { ... } } class user { private $_db = null; public function __construct($db_adapter) { $this->_db = $db_adapter; ... } public function someMethod() { $query = "SELECT * FROM test"; $result = $this->_db->query($query); ... } } $db = new db(); $usr = new user($db); $books = $user->someMethod(); |
||
deter Profil |
#5 · Zasláno: 26. 6. 2008, 22:12:34
hezky, díky, tak já to teda znovu všechno přepíšu
|
||
ShiraNai7 Profil |
#6 · Zasláno: 27. 6. 2008, 06:52:36 · Upravil/a: ShiraNai7
srigi
V PHP 5 možná, ale v PHP 4 si s public a private moc neužiješ. Já bohužel musím programovat kompatibilně xD Pokud to tedy v PHP 4 vážně nejde a já jen nejsem dezinformován. |
||
Časová prodleva: 16 let
|
0