static mező értékadás két stringből
lehet én vagyok nagyon tudatlan, de ez miért nem működik?próbáltam self nélkül, osztálynévvel, simán a nevével, és sehogy nem ment, mindig szintaxerrort kaptam. Van erre valami megoldás? annyit szeretnék, hogy adott egy osztály, abban van egy sima statikus mező, és egy másik statikus mezőnek adni értékül az adott mezőt, plusz még valamit (a valami nélkül sem ment). a lényeg, hogy statikus legyen, hogy ne kelljen az osztályt példányosítani.
■
class teszt {
static $valami = "akarmi";
static $masvalami = self::$valami."adalek";
}
Csak
Gondolj csak bele. Ha lehetne műveletet tartalmazó értéket adni inicializálásul egy static változónak, akkor igencsak bonyolult lenne az értelmező dolga, hiszen ellenőriznie kellene, hogy nem csinálsz-e körkörös hivatkozást (ami ugye végtelen ciklust vagy versenyhelyzetet jelenthetne). Éppen ezért - hogy ezzel ne fékezzék az értelmező munkáját - létezik ez a kikötés.
Nem mellesleg ha ilyet szeretnél csinálni 99.999999% hogy alapjaiban rossz az elképzelésed. Persze hogy mi a helyes megoldás, az mindíg a környezettől függ.
nem feltétlenül
elképzelés annyi volt, hogy adott volt egy oldal, ahol a configadatokat egy osztályból szedte ki minden modul magának (és ez volt a baj, hogy valahol statikusként), és ebben az osztályban sok mező lefedte egymást. (pl abszolút elérések adminoldanak, képeknek stb.).
inicializáld az osztályon kívül
működik, köszi
Olvasd el a magyarázatom
teljesen világos,
Na várj
Konstans!
static $valami = KONSTANS;
static $masvalami = KONSTANS."masvalami";
viszhall!
konstans sem megy
Hopsz