• User Newbie

    Funzione php

    allora..
    io ho una funzione che dovrebbe fare così

    [php]
    function convert_avatar($a,$b)
    {
    if (condizione)
    {
    fai le operazioni

            if (condizione 2)
            {
               fai le operazioni
               //qui dovrebbe ricominciare da capo la funzione
            }
            else
            {
                fai le operazioni
               //qui dovrebbe ricominciare da capo la funzione
            }
        }
        
        else return $a;
    }
    

    [/php]il problema è che non so come dirgli di ricominciare.. mi date un aiutino? :arrabbiato:


  • User Newbie

    Ciao,
    generalmente le funzioni ricorsive si fanno richiamando la funzione stesse dentro la funzione, prestando attenzione di non generare un loop infinito.
    Nel tuo caso dentro la condizione 2 ed il suo else dovresti richimare convert_avatar(.,.). Ora per non generere un loop occorre che prima o poi la condizione 2 diventi falsa.


  • User

    Be se ho capito quello che vuoi fare dovresti usare un while al posto del primo if

    Una cosa del genere
    [php]function convert_avatar($a,$b)

    while (condizione1) {

    fai le operazioni

            if (condizione2)
            {
               fai le operazioni
               //qui dovrebbe ricominciare da capo la funzione
            }
            else
            {
                fai le operazioni
               //qui dovrebbe ricominciare da capo la funzione
            }
    

    }
    return $a
    }[/php]

    Finche condizione1 è vera ripete il ciclo, attento a non farlo diventare infinito


  • User Newbie

    Be.. si può fare anche con un while.. come uno preferisce, a me piace anche usare proprio le funzioni ricorsive, cioè che hanno al loro interno una chiamata a loro stesse.


  • User Newbie

    @JackLuk said:

    allora..
    io ho una funzione che dovrebbe fare così

    [php]
    function convert_avatar($a,$b)
    {
    if (condizione)
    {
    fai le operazioni

            if (condizione 2)
            {
               fai le operazioni
               //qui dovrebbe ricominciare da capo la funzione
            }
            else
            {
                fai le operazioni
               //qui dovrebbe ricominciare da capo la funzione
            }
        }
        
        else return $a;
    }
    

    [/php]il problema è che non so come dirgli di ricominciare.. mi date un aiutino? :arrabbiato:
    risolto! 😄

    [php]
    function convert_avatar($a,$b)
    {
    if (condizione)
    {
    fai le operazioni

            if (condizione 2)
            {
               fai le operazioni
    

    return convert_avatar($a,$b);
    }
    else
    {
    fai le operazioni
    return convert_avatar($a,$b);
    }
    }

        else return $a;
    }
    

    [/php]


  • User

    con le funzioni ricorsive non ti puoi permettere i cicli 😛