Visualizzazione dei risultati da 1 a 7 su 7

Discussione: ciclo for con eval

  1. #1
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549

    ciclo for con eval

    è 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/

  2. #2

  3. #3
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    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/

  4. #4
    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.

  5. #5
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    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/

  6. #6
    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 $partenzacall_user_func($condizione$i,  $cond_args); $incremento == 'sottrai' $i-- : $i++) { 
            print(
    "{$i}\r\n");
        }
    }

    ciclo(20'maggiore''sottrai', array('di' => 10));

    ?>
    </pre>

  7. #7
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    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ì:

    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 $partenzacall_user_func($condizione$x,  $cond_args'larghezza'); $incremento == 'sottrai' $x-- : $x++) {
            for (
    $y=$partenza2call_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)); 
    sembra che non entri nel secondo ciclo.
    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/

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.