• [^] # Re: Découvrez la communauté PHP

    Posté par (site web personnel) . En réponse à la dépêche Découvrez la communauté PHP. Évalué à 8.

    Alors la je m'insurge Pierre :)

    Je n'ai encore jamais vu un goto utile et je ne vois pas en quoi cela va changer le nombre d'indentation... Enfin, si peut etre mais je comprend pas alors l'interet de tester des conditions et d'un seul coup de dire qu'on testera la suite plus loin dans le seul but de ne pas avoir 10 niveaux d'intentation... Si j'ai pas compris, il faut me le dire :)

    Sinon, pour l'utilisation du goto, un petit exemple avec linux...

    void add_timer(struct timer_list *timer)
    {
    unsigned long flags;

    spin_lock_irqsave(&timerlist_lock, flags);
    if (timer_pending(timer))
    goto bug;
    internal_add_timer(timer);
    spin_unlock_irqrestore(&timerlist_lock, flags);
    return;
    bug:
    spin_unlock_irqrestore(&timerlist_lock, flags);
    printk("bug: kernel timer added twice at %p.\n",
    __builtin_return_address(0));
    }

    alors, la, moi je vois pas pourquoi le code de bug: se trouve pas apres le if avec un else si y'a pas eu bug... et sans le return;
    Mais je dis peut etre une grosse connerie et si quelqu'un veut m'expliquer, qu'il le fasse :) J'aurais peut etre moins d'appriories sur le goto apres :)