Probleme mit Eval()
am 13.08.2006 16:31:18 von Holger Butschek
Hallo und einen schönen Sonntag.
Ich habe ein Problem und zwar möchte ich einen String mit einem DB-Inhalt
kombinieren. Daraus erhalte ich die Bezeichnung einer Konstanten, deren Wert
ich mir dann aus einem Language-File lese.
Folgender Code sollte dies eigentlich für mich bewerkstelligen:
$str = "_language" . $row["Sprache1Bew"];
$DBLanguageSkill1 = eval ("$str;");
$str hat den Inhalt _language1 und entspricht dem Bezeichner im
Language-File. Leider erhalte ich aber statt dessen die Fehlermeldung:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in
C:\Programme\xampp\htdocs\emcag\BioShow.php3 on line 60
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in
C:\Programme\xampp\htdocs\emcag\BioShow.php3 on line 60
Hat jemand hierfür eine Idee?
Grüße,
Holger
Re: Probleme mit Eval()
am 13.08.2006 17:14:19 von Carsten Wiedmann
Holger Butschek schrieb:
> Hallo und einen schönen Sonntag.
>
> Ich habe ein Problem und zwar möchte ich einen String mit einem DB-Inhalt
> kombinieren. Daraus erhalte ich die Bezeichnung einer Konstanten, deren
> Wert ich mir dann aus einem Language-File lese.
>
> Folgender Code sollte dies eigentlich für mich bewerkstelligen:
>
> $str = "_language" . $row["Sprache1Bew"];
> $DBLanguageSkill1 = eval ("$str;");
So ganz hab ich das noch nicht verstanden. Beispiel:
a)Du hast eine Konstante:
| define('_languagede', 'Irgend ein Text');
b) Aus deiner DB erhälst du in $row['Sprache1Bew'] den String: "de".
c) In $DBLanguageSkill1 willst du am Schluss "Irgend ein Text" haben.
Stimmt das so? Dann würde ich das so machen:
| $DBLanguageSkill1 = constant('_language'.$row['Sprache1Bew']);
Gruß
Carsten
Re: Probleme mit Eval()
am 13.08.2006 19:37:52 von Holger Butschek
> Stimmt das so? Dann würde ich das so machen:
> | $DBLanguageSkill1 = constant('_language'.$row['Sprache1Bew']);
>
Cool, hat funktioniert. danke!
Grüße,
Holger