Beschreibung:
mixed
eval
( string code_str)
eval(
)
versucht
,
den
in
code_str
enthaltenen
String
als
PHP-Code
auszuführen
.
Abgesehen
von
anderen
Zwecken
kann
dies
nützlich
sein
,
um
Code
auszuführen
,
der
aus
einer
Datenbank
ausgelesen
wird
.
Beim
Gebrauch
von
eval(
)
gilt
es
einige
Faktoren
zu
beachten
.
Die
Zeichenkette
code_str
muss
gültigen
PHP-Code
enthalten
,
einschließlich
syntaktisch
richtiger
Begrenzungszeichen
(
also
incl
.
"
;
"-Abschluss-Zeichen
für
einzelne
Anweisungen
,
sonst
bricht
der
PHP-Parser
in
der
folgenden
Zeile
mit
einem
Fehler
ab
.
Beachten
sie
,
dass
die
innerhalb
von
eval(
)
vorgenommenen
Variablen-Zuweisungen
nach
Abarbeitung
auch
im
Hauptskript
ihre
Gültigkeit
behalten
.
Eine
return
-Angabe
beendet
sofort
die
Auswertung
des
Strings
.
Mit
PHP4
können
sie
ein
return
verwenden
,
um
das
Ergebnis
der
Funktion
eval(
)
zu
erhalten
.
In
PHP3
ist
eval(
)
nämlich
vom
Typ
void
und
liefert
nichts
zurück
.
Beispiel
1
.
eval(
)
-Beispiel
(einfache
Texteinfügung
)
:
?php
$string
=
'
Bierglas'
;
$name
=
'Binding-Lager'
;
$str
=
'Das
ist
mein
$string
,
voll
mit
$name
.
br
'
;
echo
$str
;
eval
("\$str
=
\"$str\"
;")
;
echo
$str
;
?
|
|
Das
obige
Beispiel
gibt
aus
:
Das
ist
mein
$string
,
voll
mit
$name
.
Das
ist
mein
Bierglas
,
voll
mit
Binding-Lager
.
|
Beachten
sie
bitte
das
Setzen
des
Begrenzungs-Zeichens
"
;
"
in
code_str
sowie
den
Gebrauch
des
"\
"-Zeichens
.