Autor Zpráva
temistokles
Profil
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
Myslím že ne, protože i kdybys použil ReflectionClass a její metodu implementsInterface, tak stejně musíš vytvářet instanci.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: