eks: afhængig af hvad $language er sat til skal den lave en new på den pågældende klasse class Config { var $language = 'en_US'; ... if( file_exists( "language/Lang_{$this->language}.php" ) ) { include 'language/Lang_en_US.php'; $this->lang = new Lang_en_US(); } else { include "language/Lang_{$this->language}.php"; $this->lang = 'Lang_'. $this->language; }
Du kan jo bruge det samme navn for alle dine sprogklasser - så længe du ikke har brug for at include to forskellige sprogklasser på een gang, vil det ikke give kollisioner.
2) ... ellers burde det vust kunne gøre med en eval():
class Config { var $language = 'en_US'; ... if (file_exists("language/Lang_en_US.php")) { // ...OGSÅ ÆNDRET HER... include 'language/Lang_en_US.php'; $this->lang = new Lang_en_US(); } else { include "language/Lang_{$this->language}.php"; $this->lang = eval("return new Lang_{$this->language}()"; } }
if all else failes read the f...... manual. Jeg har selv fundet fejlen nu. Der manglede et semikolon inde i den tekststreng der skal evalueres. Så dit eksempel ser ud til at virke - mange tak herfra.
Der skal ligge et svar på spørgsmålet før at der kan udeles point. Normalt svare jeg først når det er klart at spørgeren rent faktisk har fået låst sit problem (ved f.eks. at bede om at der lægges et svar).
... men det lyder jo som om at denne her er i hus, så værsgod, et svar :^)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.