7 votes

La sortie est-elle nécessaire après le retour dans une fonction php ?

<?php

function testEnd($x) {
    if ( ctype_digit($x) ) {
        if ( $x == 24 ) {
            return true;
            exit;
        } else {
            return false;
                 exit;
        }
    } else {
        echo 'If its not a digit, you\'ll see me.';
        return false;
        exit;
    }
}

$a = '2';

if ( testEnd($a) ) {
    echo 'This is a digit';
} else {
    echo 'No digit found';
}
?>

Est-ce que exit est nécessaire avec return quand on les utilise dans une fonction php ? Dans ce cas, si quelque chose est évalué à false, j'aimerais en finir et sortir.

32voto

Hanky 웃 Panky Points 19231

Non, ce n'est pas nécessaire. Lorsque vous revenez d'une fonction, tout le code qui suit ne s'exécute pas. Si jamais il s'exécutait, votre programme s'arrêterait là et ne retournerait pas non plus à la fonction d'appel. C'est exit devrait aller

Según Manuel PHP

Si elle est appelée à l'intérieur d'une fonction, l'option immédiatement l'exécution de la fonction la valeur de l'appel de la fonction. return mettra également fin à l'exécution une instruction eval() ou un fichier script.

Considérant que, quitter selon le manuel PHP

Termine l'exécution du script.

Donc si votre sortie était vraiment en train de s'exécuter, ça arrêterait toute l'exécution juste là.

EDITAR

J'ai juste mis en place un petit exemple pour démontrer ce que quitter fait. Disons que vous avez une fonction et que vous voulez simplement afficher sa valeur de retour. Essayez alors ceci

<?php

function test($i)
{
    if($i==5)
    {
        return "Five";
    }
    else
    {
        exit;
    }
}

echo "Start<br>";
echo "test(5) response:";
echo test(5);

echo "<br>test(4) response:";
echo test(4); 

/*No Code below this line will execute now. You wont see the following `End` message.  If you comment this line then you will see end message as well. That is because of the use of exit*/

echo "<br>End<br>";

?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X