[ Príspevkov: 6 ] 
AutorSpráva
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
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: 1585
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: 3948
Témy: 51 | 51
Bydlisko: Bratislava
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...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
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: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 19.04.2010 8:16 | Triedy a sub triedy

global / singleton?


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
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

767

05.05.2009 21:04

Svolo

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

Siete triedy B

v Sieťové a internetové programy

1

325

28.01.2013 19:30

majky358

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

Mobil strednej triedy

v Mobilné zariadenia

24

1087

15.09.2017 11:54

Nair0n

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

CMS pre web triedy

v Redakčné systémy

2

773

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

843

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

2160

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

730

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

462

22.04.2011 20:40

rastis

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

C++ konštantná funkcia triedy

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

2

572

07.08.2010 14:17

Loko11

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

Java - abstraktne triedy a rozhranie

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

4

578

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

638

15.06.2014 21:06

Perezo

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

Triedy a práca s nimi

v Delphi, Visual Basic

8

855

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

492

19.12.2011 19:11

ambrosko1

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

1745

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

234

15.03.2013 9:27

Merlin_sk

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

Rozdiely medzi jednotlivymi procesormi triedy Atom

v Notebooky a netbooky

9

802

01.12.2009 15:29

Jaro



© 2005 - 2024 PCforum, edited by JanoF