Autor | Zpráva | ||
---|---|---|---|
Jack Finger Profil |
#1 · Zasláno: 3. 10. 2008, 22:32:37 · Upravil/a: Jack Finger
ahoj, tak mám takový menší problém:
mám dvě třídy: ClassM a ClassC, uložené v příslušných souborech. jenže: index.php: include('ClassC.php') include('ClassM.php') $c = New ClassC; $m = NewClassM; to je normální, funguje. ale: ClassC.php: class C { function func(){ global $m; $m->do('...'); return '...something...'; } } ClassM.php: class M { function func(){ global $c; $c->func(); } } a to samozřejmě nefunguje. nevím, jestli to někdo pochopí, snad ano, kdyžtak to ukážu přímo na příkladu, v jakém to mám, já se to jen pokoušel zobecnit... nevěděl by někdo, jak tohle řešit? |
||
Aesir Profil |
#2 · Zasláno: 3. 10. 2008, 22:45:16
|
||
Jack Finger Profil |
#3 · Zasláno: 3. 10. 2008, 23:16:59
no tak jsem to nakonec vyřešil tak, že jsem v třídě C zavolal novou instanci M. sice by to asi šlo líp, ale funguje to a singleton ještě nechápu, tak se časem pokusím pochopit. díky za tip Aesire :o)
|
||
Kcko Profil |
#4 · Zasláno: 4. 10. 2008, 00:28:28
Coz takhle?
class RegisterObject { private static $objects = array(); public static function register($object, $alias) { self::$objects[$alias] = $object; } public static function printObjects() { print_r(self::$objects); } public static function getObject($objectIndex) { return self::$objects[$objectIndex]; } } class A { function cau() { echo "cau"; } } class B { public $x = "toto je x"; function cau() { echo $this->x; } } RegisterObject::register(new A, 'A'); RegisterObject::register(new B, 'B'); //RegisterObject::printObjects(); RegisterObject::getObject('A')->cau(); |
||
srigi Profil |
#5 · Zasláno: 4. 10. 2008, 00:29:43 · Upravil/a: srigi
Jack Finger
Predaj si tie objekty "jeden druhemu". Lebo ked vidim to slovo global... ehm, to je velmi nesystemove a neobjektove. Takze: class ClassC { private $_m = null; public function setM($m) { $this->_m = $m; } function func(){ $this->m->do('...'); return '...something...'; } } class ClassM { private $_c = null; public function setC($c) { $this->_c = $c; } function func(){ $this->c->do('...'); return '...something...'; } } $c = New ClassC; $m = New ClassM; $c->setM($m); $m->setC($c); |
||
Časová prodleva: 16 let
|
0