[ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Triedy a sub triedy

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 16.04.2010 18:14 | Triedy a sub triedy

Zdravím, zaúčam sa do tried a narazil som na jeden problém.

Chcem spraviť volanie tried pomocou $Trieda->subTrieda->funnkcia(); kvôli prehladnosti. Nejak som to docielil, ale narazil som na menší problém. Síce som to vyriešil, ale neviem či nejak efektívne a preto sa pýtam tu.

Takže mám.

Kód:
class Main{

  function __construct(){
    $this->Sub1 = new Sub1;
    $this->Sub2 = new Sub2;
   
    //moje riesenie
    $this->Sub2->Sub1 = &$this->Sub1;
   
  }
}

class Sub1{
  var $Result = '';
 
  function Result($A){
    $this->Result .= $A;
  }
}

class Sub2{
  function setResult($A){
    $this->Sub1->Result($A);
  }
}

$M = new Main;
$M->Sub2->SetResult('asd');
$M->Sub2->SetResult('fgh');

var_dump($M);


Vráti
Kód:
object(Main)#1 (2) {
  ["Sub1"]=>
  &object(Sub1)#2 (1) {
    ["Result"]=>
    string(6) "asdfgh"
  }
  ["Sub2"]=>
  object(Sub2)#3 (1) {
    ["Sub1"]=>
    &object(Sub1)#2 (1) {
      ["Result"]=>
      string(6) "asdfgh"
    }
  }
}


Nie je to blbosť, alebo to nejak zbytočne nezaťažuje chod? Obvzlášť, keď to bude rozsiahlejšie.
Tu sa dostávame k pointe. Dá sa tá funkcia Result() v Sub2->SetResult() volať aj nejak inak?

Niečo v zmysle parent::Sub1->Result('asd');

Pretože ak volám funkciu staticky ( Sub1::Result(2); ), tak prídá premennú Result do Sub2, ale ja chcem aby to ostalo v Sub1.

Dúfam, že som sa nevyjadril jak mešuge, lebo už aj sám som z toho popletený :cry:

ďakujem


_________________
Sorry za prelkepy
Offline

Skúsený užívateľ
Skúsený užívateľ
Triedy a sub triedy

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1586
Témy: 96 | 96
NapísalOffline : 17.04.2010 7:34 | Triedy a sub triedy

ak sa chces naucit OOP, zacni s inym jazykom, napr. java. Tam pochopis podstatu. Potom sa ti bude aj v php lepsie pisat.


_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Správca fóra
Správca fóra
Triedy a sub triedy

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 18.04.2010 21:19 | Triedy a sub triedy

emer, skus vysvetlit obsirnejsie a popisat na realnom priklade, co chces presne dosiahnut, lebo z toho kodu sa to neda velmi zistit - vyzera to totiz strasne... preco si vlastne metody Result a setResult rozdelil do 2 tried? ak budeme vediet, na co to chces pouzit, budeme vediet mozno skor poradit...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Triedy a sub triedy

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 18.04.2010 21:33 | Triedy a sub triedy

no ide o to, ze mam jednu triedu na pracu s DB. a kazdy jeden query uklada do pola, aby osmn konci vedel ze ake dotazi boli vykonane, popripadne ktore hodili chybu a loguje sa to. a takych tried s podobnou funkciou bude asi viac, lenze ta DB je osobity pripad, lebo nemozem volat tu triedu z inych tried staticky. pretoze sa mi potom tie informacie o dotazoch rozdelia. neviem ako to poriadne vysvetlilt :/


_________________
Sorry za prelkepy
Offline

Správca fóra
Správca fóra
Triedy a sub triedy

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 19.04.2010 8:16 | Triedy a sub triedy

global / singleton?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Triedy a sub triedy

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 19.04.2010 19:50 | Triedy a sub triedy

ten singleton je paráda, aj keď som tomu najprv vôbec nerozumel :D ešte si to naštudujem, ďakujem mockrát stenley


_________________
Sorry za prelkepy
 [ Príspevkov: 6 ] 


Triedy a sub triedy



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Forko triedy

v Redakčné systémy

7

503

05.05.2009 21:04

Svolo

V tomto fóre nie sú ďalšie neprečítané témy.

Mobil strednej triedy

v Mobilné zariadenia

24

696

15.09.2017 11:54

Nair0n

V tomto fóre nie sú ďalšie neprečítané témy.

Siete triedy B

v Sieťové a internetové programy

1

77

28.01.2013 19:30

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

C++ konštantná funkcia triedy

v Assembler, C, C++, Pascal, Java

2

379

07.08.2010 14:17

Loko11

V tomto fóre nie sú ďalšie neprečítané témy.

CMS pre web triedy

v Redakčné systémy

2

505

29.10.2009 7:24

yhanky

V tomto fóre nie sú ďalšie neprečítané témy.

C++ triedy, spravna rekurzia

v Assembler, C, C++, Pascal, Java

4

563

03.12.2010 8:47

HT

V tomto fóre nie sú ďalšie neprečítané témy.

Ako optimalizovat vykon triedy

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

58

1265

01.09.2010 11:59

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

[Java] Instancia abstraktnej triedy

v Assembler, C, C++, Pascal, Java

6

492

09.08.2010 13:50

crusher100

V tomto fóre nie sú ďalšie neprečítané témy.

Wifi-Router do triedy

v Ostatné

1

260

22.04.2011 20:40

rastis

V tomto fóre nie sú ďalšie neprečítané témy.

Triedy a práca s nimi

v Delphi, Visual Basic

8

578

24.08.2010 11:43

Manny

V tomto fóre nie sú ďalšie neprečítané témy.

pocitac strednej triedy do 500€

v PC zostavy

7

248

19.12.2011 19:11

ambrosko1

V tomto fóre nie sú ďalšie neprečítané témy.

Java - abstraktne triedy a rozhranie

v Assembler, C, C++, Pascal, Java

4

165

23.06.2017 14:52

neutroN

V tomto fóre nie sú ďalšie neprečítané témy.

Notebook strednej triedy Dell 7537

v Notebooky a netbooky

12

255

15.06.2014 21:06

Perezo

V tomto fóre nie sú ďalšie neprečítané témy.

Rozdiely medzi jednotlivymi procesormi triedy Atom

v Notebooky a netbooky

9

478

01.12.2009 15:29

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

Slovensko bude mať superpočítač svetovej triedy

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Novinky

30

1315

12.12.2011 17:28

Johnnny

V tomto fóre nie sú ďalšie neprečítané témy.

Eclipse content assist nedoplna len triedy

v PHP, ASP

0

78

15.03.2013 9:27

Merlin_sk



© 2005 - 2017 PCforum, edited by JanoF