Autor Zpráva
Amunak
Profil
V interface mám definováno několik konstant, ke kterým se snažím dostat pomocí statické metody:
public static function getConstant($const)
    {
        if(!defined(iconstants::$const))
        {
            return null;
        } else {
            return iconstants::$const;
        }
    }

A to nefunguje - očividně takhle k těm konstantám přistupovat nemohu. Existuje nějaká alternativa? Ta metoda s konstantami pak ještě dál pracuje, tohle je zkrácený příklad a sám o sobě by samozřejmě neměl smysl. Chyba vyleze už na řádku 3, a pak by vylezla určitě ještě na řádku 7.
Tori
Profil
return defined("iconstants::$const") ? constant("iconstants::$const") : null;
Alphard
Profil
http://php.net/manual/en/reflectionclass.getconstant.php
Amunak
Profil
Díky. Teď nastává dilema - který z těch přístupů je lepší? Záleží na tom vůbec? Použiju asi ten od Tori, přijde mi to snazší.
Alphard
Profil
Amunak:
Použíjte, co se vám hodí. Já jsem to druhé řešení dodal také kvůli dalším metodám Reflection Class. Reflexe je důležitá, ale člověk se s ní setká až déle, často je použita ve frameworcích apod.

Mé řešení vyžaduje vytvoření instance další třídy, bude zřejmě trochu pomalejší a zbytečně složitější.

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: