Autor | Zpráva | ||
---|---|---|---|
zaciatocnik111 Profil * |
#1 · Zasláno: 18. 2. 2009, 23:21:40
existuje v PHP nejaka moznost ako vytvorit instanciu triedy, ktorej nazov mam ulozeny v premennej? viem ze v c# sa to da...
|
||
Majkl578 Profil |
#2 · Zasláno: 18. 2. 2009, 23:37:37
$trida = 'myClass';
$instance = new $trida(); |
||
zaciatocnik111 Profil * |
#3 · Zasláno: 19. 2. 2009, 00:03:36
no dik, ze to bude az take jednoduche ma fakt nenapadlo, dynamicke jazyky maju svoje vyhody
|
||
bohyn Profil |
#4 · Zasláno: 19. 2. 2009, 02:39:51
zaciatocnik111
Toto reseni bych povazoval za nouzove vzhledem k neprehlednosti. Pokud to jde tak bych volil spis variantu if($trida == "myClass") { $instance = myClass(); } else { $instance = myOtherClass(); } |
||
AM_ Profil |
#5 · Zasláno: 19. 2. 2009, 08:32:52
bohyn
neřekl bych, samozřejmě zprasit se to na tomhle základě dá, ale samo o sobě na tom nic špatného není - lepší než if s deseti větvemi (předpokládám, že tam nerozlišuje pouze 2 třídy, jak to uvádíš v příkladu), a případné možnosti bych vedle toho hodil do komentáře, pokud je vůbec možné výčet možností předvídat (nejedná se např. o nějaké načítání rozšiřitelných modulů) a přehlednost to vyžaduje. Třeba $instance = new $class(); /* moznosti (dedi po vyrobek): -papir -kelimek -sesit -... */ |
||
Aesir Profil |
#6 · Zasláno: 19. 2. 2009, 09:12:06
Nač to vymýšlet znovu, když už to udělal někdo před námi? :)
|
||
AM_ Profil |
#7 · Zasláno: 19. 2. 2009, 09:18:08
Aesir
To je přesně to, co psal bohyn. Pokud bude mít ta třída mít víc než pár potomků nebo třeba ani předem nebudou známí, tak je to předem nepoužitelné. |
||
Aesir Profil |
#8 · Zasláno: 19. 2. 2009, 09:25:54
AM_:
„To je přesně to, co psal bohyn.“ vím, však jsem to pro tazatele chtěl jen pojmenovat :) „Pokud bude mít ta třída mít víc než pár potomků nebo třeba ani předem nebudou známí, tak je to předem nepoužitelné.“ což se dá velmi jednodušše ošetřit |
||
Časová prodleva: 15 let
|
0