è possibile fare una cosa del genere?
Codice PHP:
$condizione="$x<$larghezza";
eval("for $x=0; $condizione; $x++")
è possibile fare una cosa del genere?
Codice PHP:
$condizione="$x<$larghezza";
eval("for $x=0; $condizione; $x++")
"homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."
www.flickr.com/photos/asciella/
www.lastfm.it/user/qvaioe/
Perchè vuoi usare eval?
ho una seria di cicli for annidati ma che eseguono la stessa serie di operazioni. volevo perciò utilizzare una funzione con all'interno un solo ciclo che utilizzerà come condizioni l'argomento della funzione.
"homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."
www.flickr.com/photos/asciella/
www.lastfm.it/user/qvaioe/
E perchè vuoi usare eval?
IMHO non ti serve. Prova a postare un esempio di codice dove devi per forza utilizzare eval(), magari esistono soluzioni alternative più semplici e veloci.
eval l'ho sparato così a caso. non voglio usarlo necessariamente.
come nel primo esempio vorrei qualcosa del genere:
ciclo("$x=1000","$x<$larghezza","sottrai");
function ciclo ($partenza,$condizione,$incremento)
{
$inc=($increremento=='sottrai') ? "$partenza--" : "$partenza++";
for ($partenza,$condizione,$inc)
{
......
}
}
"homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."
www.flickr.com/photos/asciella/
www.lastfm.it/user/qvaioe/
Studiati questo codice:
Codice PHP:
<pre>
<?php
function maggiore($i, $args) {
return $i > $args['di'];
}
function ciclo($partenza, $condizione, $incremento, $cond_args = array()) {
for ($i = $partenza; call_user_func($condizione, $i, $cond_args); $incremento == 'sottrai' ? $i-- : $i++) {
print("{$i}\r\n");
}
}
ciclo(20, 'maggiore', 'sottrai', array('di' => 10));
?>
</pre>
si funziona grazie mille.
dopo di chè ho provato a metterci le mani e ovviamente non funziona più.
siccome ho due cicli annidati ho modificato il tuo codice così:
sembra che non entri nel secondo ciclo.Codice PHP:
function maggiore($i, $args, $quale) {
return $i > $args[$quale];
}
function minore($i, $args, $quale) {
return $i < $args[$quale];
}
function ciclo($partenza, $partenza2, $condizione, $condizione2, $incremento, $incremento2, $cond_args = array()) {
for ($x = $partenza; call_user_func($condizione, $x, $cond_args, 'larghezza'); $incremento == 'sottrai' ? $x-- : $x++) {
for ($y=$partenza2; call_user_func($condizione2, $y, $cond_args, 'altezza'); $incremento2 == 'sottrai' ? $y-- : $y++)
{
echo "si";
}
}
}
$larghezza=400;
$altezza=250;
ciclo(0,0,'minore','minore','aggiungi','aggiungi',array('larghezza' => $larghezza),array('altezza'=>$altezza));
qual'è il problema?
grazie ancora
"homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."
www.flickr.com/photos/asciella/
www.lastfm.it/user/qvaioe/