• [^] # Re: finally et sel des hashs

    Posté par . En réponse à la dépêche Peuch-peuch Cinq Cinq, pour PHP 5.5. Évalué à 6.

    Déjà, à quoi sert finally?

    finally garantit que le code qu'il contient sera exécuté après le try/catch, quelque soit l'issue (bonne ou mauvaise).
    En fait, pour bien comprendre, il faudrait plutôt un exemple comme celui-ci :

    function myFonction() {
     $con = NULL;
     try {
     $con = mysql_connect("localhost","myuser","mypwd");
     if (!$con) {
     throw new Exception("Echec de connexion à la base de données");
     }
     catch( Exception $e ) {
     echo 'Erreur MySQL : ', $e->getMessage(), "\n";
     throw $e;
     }
     finally {
     if ($con !== NULL) {
     close($con);
     }
     }
    }

    Ici, le catch écrit un message d'erreur puis renvoie l'exception levée, donc on sort complètement de la fonction. Ce qui suit (le if de fermeture de la connexion) n'aurait jamais été exécuté s'il ne se trouvait pas dans un finally