phpbar.de logo

Mailinglisten-Archive

[php] Problem mit eval

[php] Problem mit eval

Ulf Wendel ulf.wendel_(at)_phpdoc.de
Tue, 14 Nov 2000 09:11:17 +0100


Malte Schomers wrote:
> Ich habe folgenden Code:
> while(list($ID, $Link, $Titel, $Beschreibung, $Sprache, $Bew, $Hits, $IP) = mysql_fetch_row($erg))
> ...
> 
> Jetzt will ich aber den Code zwischen list(  und  ) = ... dynamisch
> generieren. Das funzt auch.
> Ich habe im Endergebnis $dgstr = "$ID, $Link..." usw.
> 
> Aber wie krieg' ich den Code da rein, sodass er ausgeführt wird?
> Einfach list($dgstr) geht ja nicht, und mit eval krieg' ich's auch
> nicht hin.

Ideen gibt es... Die Verwendung von eval() in der Redewendung
while-list-each ist alles andere als gebräuchlich. eval() ist ein
Notanker, der nicht in normalen Code verwendet werden sollte. 

Jedes dynamische eval() in einem compilierten Code (und das soll PHP4 ja
"later this year" produzieren) verhindert eine Optimierung. Wie soll ein
Übersetzer etwas übersetzen das zur Kompilierzeit nicht kennt. Der
Übersetzer wird eine Lösung finden, aber diese ist nicht optimal.

Diese Überlegung und die Schwierigkeiten, die Du hast, legen es nahe
einen anderen Ansatz zu suchen. 

Ich verstehe nicht, warum Du schon im Kopf der Schleife eine Zerlegung
machst, was spricht dagegen wie unter
http://www.php.net/manual/function.mysql-fetch-array.php gezeigt ein
Array entgegenzunehmen und dieses anschließend auszulesen, ggf. auch mit
http://www.php.net/manual/function.isset.php ?

Ulf







> 
> Malte
> --
> /***********************************************************/
> /* malte schomers */* mschomers_(at)_web.de */* www.malte.de.cx */
> /* jepp */* die seite mit pepp!! */* http://www.jepp.de.st */
> /***********************************************************/
> 
> --
> ** Durchgehend geöffnet: http://www.php-center.de **
> Die PHP-Liste: mailto:php_(at)_php-center.de
> http://infosoc.uni-koeln.de/mailman/listinfo/php

-- 
Jede korrekte Antwort kostet. Spendenangebote bitte per PM.


php::bar PHP Wiki   -   Listenarchive