Probleme mit Eval()

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