42 votes

Existe-t-il un moyen de ne quitter que le fichier php inclus ?

J'ai donc un sidebar.php qui est inclus dans le index.php . Sous une certaine condition, je veux que sidebar.php arrête de s'exécuter, alors j'ai pensé à mettre exit dans sidebar.php , mais cela quitte en fait tout le code en dessous, ce qui signifie tout sous include('sidebar.php'); dans index.php tout le code serait également ignoré. Existe-t-il un moyen de faire en sorte que exit ne saute que le code dans le sidebar.php ?

87voto

Olipro Points 953

Utilisez simplement return;

Sachez également qu'il est possible de renvoyer quelque chose à un script appelant de cette manière.

si votre script parent a $somevar = include("myscript.php"); et que dans myscript.php vous dites... return true; vous obtiendrez cette valeur en $somevar

13voto

Emmanuel Points 1850

Oui, vous utilisez simplement return; . Votre fichier sidebar.php pourrait ressembler à ceci :

 <?php

if($certain_condition) {
    return;
} else {
    // Do your stuff here
}

?>

6voto

Ashley Hardy Points 61

Je sais que c'est une très vieille question, mais j'ai récemment repris la base de code d'un autre développeur qui a utilisé exit religieusement, ce qui signifie que le fichier parent qui comprenait divers fichiers devait être conçu de telle manière que l'inclusion du module les fichiers ont été créés à la fin afin de ne pas couper la page. J'ai écrit un petit script PHP pour remplacer toutes les occurrences de "exit;" avec "retour ;".

 if($handle = opendir("path/to/directory/of/files")) {
    while(false !== ($file = readdir($handle))) {
        if("." === $file) continue;
        if(".." === $file) continue;

        $pageContents = file_get_contents($file);
        $pageContents = str_replace("exit;", "return;", $pageContents);
        file_put_contents($file, $pageContents);

        echo $file . " updated<br />";

    }
}

J'espère que ça aidera quelqu'un.

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