Autor | Zpráva | ||
---|---|---|---|
temistokles Profil |
#1 · Zasláno: 19. 8. 2009, 09:56:05
Ahoj,
mám jeden špecifický problém. Snažím sa zistiť, či trieda, ktorej meno mám uložené v premennej implementuje rozhranie. Kód vyzerá nasledovne: class A implements X { ... } class B implements X { ... } class C { ... } ... $trieda = 'A'; No a teraz ten problém, ako zistím, či $trieda obsahuje meno triedy implementujúcej X? Jediný spôsob, na ktorý som došiel je, že si vytvorím jej inštanciu a použijem operátor instanceof, čo je však v mojom prípade zbytočné, nakoľko mi ide len o samotný test a inštanciu objektu by som následne zahodil. $obj = new $trieda; if ($obj instanceof X){ echo 'hura'; } Existuje nejaký lepší spôsob alebo sa s týmto faktom budem musieť zmieriť? |
||
Mastodont Profil |
#2 · Zasláno: 19. 8. 2009, 11:03:05
Myslím že ne, protože i kdybys použil ReflectionClass a její metodu implementsInterface, tak stejně musíš vytvářet instanci.
|
||
Časová prodleva: 15 let
|
0